Red Hat Linux 7.0: Le Guide officiel de démarrage Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 12. Utilisation de Gnome-RPM et RPM | Suivant |
Vous pouvez également utiliser la technologie RPM en entrant une série de commandes à l'invite du shell. Vous avez naturellement à votre disposition toutes les fonctions de Gnome-RPM, plus quelques-unes, telles que la possibilité d'actualiser des paquetages, comparable à la mise à niveau (reportez-vous à la la section intitulée Actualisation pour plus d'informations).
Pour plus de détails sur RPM, reportez-vous aux chapitres correspondants dans le Guide officiel de référence Red Hat Linux figurant sur le CD-ROM de documentation. Vous pouvez également lire la page de manuel correspondante en tapant man rpm ou le fichier d'aide en tapant rpm --help.
Les paquetages RPM portent généralement des noms de fichier tels que foo-1.0-1.i386.rpm, c'est-à-dire le nom (foo), la version (1.0), l'édition (1) et l'architecture (i386) du paquetage. L'installation d'un paquetage revient à entrer :
# rpm -ivh foo-1.0-1.i386.rpm foo #################################### # |
RPM imprime le nom du paquetage (qui n'est pas nécessairement le même que celui du fichier), puis une succession de symboles dièse à mesure que le paquetage est installé, indiquant l'état d'avancement de l'installation.
En réalité, vous pouvez également installer un paquetage avec l'option de mise à jour. Pour plus de détails, voir la la section intitulée Mise à jour.
Lors de l'installation, des erreurs peuvent se produire ; le système affiche alors des messages indiquant que le paquetage est déjà installé ou qu'il y a des problèmes de dépendance empêchant l'installation du paquetage.
Pour plus de détails sur les types d'erreurs éventuels, poursuivez la lecture.
Si le paquetage est déjà installé, le système affiche :
# rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed error: foo-1.0-1.i386.rpm cannot be installed # |
Si vous envisagez d'installer le paquetage malgré tout, vous pouvez utiliser la commande --replacepkgs dans la ligne de commande, qui indique à RPM d'ignorer l'erreur :
# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm foo #################################### # |
Si vous tentez d'installer un paquetage contenant un fichier déjà installé par un autre paquetage, le système affiche :
# rpm -ivh foo-1.0-1.i386.rpm foo /usr/bin/foo conflicts with file from bar-1.0-1 error: foo-1.0-1.i386.rpm cannot be installed # |
Pour faire en sorte que RPM ignore cette erreur, utilisez la commande --replacefiles dans la ligne de commande :
# rpm -ivh --replacefiles foo-1.0-1.i386.rpm foo #################################### # |
Les paquetages RPM peuvent "dépendre" d'autres paquetages, ce qui signifie qu'ils requièrent l'installation d'autres paquetages pour fonctionner correctement. Si vous essayez d'installer un paquetage pour lequel il existe une telle dépendance non résolue, vous verrez s'afficher :
# rpm -ivh bar-1.0-1.i386.rpm failed dependencies: foo is needed by bar-1.0-1 # |
Pour corriger l'erreur, installez le paquetage requis. Si vous voulez néanmoins forcer l'installation (ce qui est une mauvaise idée car le paquetage ne fonctionnera probablement pas correctement), entrez --nodeps dans la ligne de commande.
La désinstallation d'un paquetage est également simple :
# rpm -e foo # |
Notez que, lorsque vous désinstallez un paquetage, vous devez utiliser le nom du paquetage (foo), pas celui du paquetage original ("foo-1.0-1.i386.rpm").
Une erreur de dépendance peut se produire lors de la désinstallation d'un paquetage si un autre paquetage installé dépend de celui que vous essayez de supprimer. Par exemple :
# rpm -e foo removing these packages would break dependencies: foo is needed by bar-1.0-1 # |
Pour que RPM ignore cette erreur et désinstalle le paquetage malgré tout (ce qui est également une mauvaise idée du fait que le paquetage qui en dépend cessera probablement de fonctionner correctement), utilisez la commande --nodeps dans la ligne de commande.
La mise à jour d'un paquetage est une opération similaire à l'installation.
# rpm -Uvh foo-2.0-1.i386.rpm foo #################################### # |
Lorsque vous procédez à une mise à jour, RPM désinstalle automatiquement les anciennes versions du paquetage foo.
Vous pouvez également utiliser la commande upgrade pour installer des paquetages car elle fonctionne bien même lorsqu'aucune version antérieure du paquetage n'est installée.
Comme RPM effectue une mise à jour "intelligente" des paquetages à l'aide de fichiers de configuration, le message suivant peut apparaître :
# rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed error: foo-1.0-1.i386.rpm cannot be installed # |
Pour que RPM "se mette à niveau" malgré tout, utilisez --oldpackage dans la ligne de commande :
# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm foo #################################### # |
L'actualisation d'un paquetage est une opération similaire à une mise à jour :
# rpm -Fvh foo-1.2-1.i386.rpm foo #################################### # |
L'option d'actualisation de RPM vérifie les versions de paquetages spécifiées dans la ligne de commande par rapport aux versions installées sur le système. Lorsqu'une version plus récente d'un paquetage déjà installé est traitée par l'option d'actualisation de RPM, la mise à niveau vers la version plus récente intervient. Toutefois, l'option d'actualisation de RPM n'installe pas un paquetage s'il n'existe pas de paquetage du même nom installé précédemment. Ceci diffère de l'option de mise à jour de RPM, vu que la mise à jour installera effectivement les paquetages, qu'une version antérieure soit installée ou non.
L'interrogation de la base de données des paquetages installés s'effectue à l'aide de la commande rpm -q. Une utilisation simple est rpm -q foo qui imprime le nom, la version et l'édition du paquetage installé foo :
# rpm -q foo foo-2.0-1 # |
Au lieu de spécifier le nom du paquetage, vous pouvez utiliser les options suivantes avec -q pour spécifier quel(s) paquetage(s) vous voulez rechercher. On les appelle options de spécification de paquetage.
-a recherche tous les paquetages actuellement installés.
-f <fichier> interroge le paquetage propriétaire de <fichier>.
-p <fichier_de_paquetage> interroge le paquetage <fichier_de_paquetage>.
Il y a plusieurs manières de spécifier les informations à afficher sur les paquetages recherchés. Les options suivantes sont utilisées pour sélectionner le type d'informations recherché. On les appelle options de sélection d'informations.
-i affiche des informations sur le paquetage telles que le nom, la description, la version, la taille, la date de création, la date d'installation, l'éditeur et d'autres informations.
-l affiche la liste des fichiers "appartenant" à ce paquetage.
-s affiche l'état de tous les fichiers du paquetage.
-d affiche la liste des fichiers de documentation (pages de manuel, pages d'information, fichiers README, etc.).
-c affiche la liste des fichiers de configuration. Il s'agit des fichiers que vous modifiez après l'installation afin d'adapter le paquetage à votre système (sendmail.cf, passwd, inittab, etc).
Pour les options qui affichent des listes de fichiers, vous pouvez ajouter -v à la ligne de commande pour obtenir les listes dans un format ls -l familier.
La vérification d'un paquetage permet de comparer les informations sur les fichiers d'un paquetage installé à celles du paquetage original. La vérification compare, entre autres, la taille, la somme MD5, les autorisations, le type, le propriétaire et le groupe de chaque fichier.
La commande rpm -V vérifie un paquetage. Vous pouvez utiliser n'importe laquelle des options de sélection de paquetage de la liste pour spécifier les paquetages que vous souhaitez vérifier. Une utilisation simple est rpm -V foo qui vérifie si tous les fichiers du paquetage foo sont tels qu'ils étaient lors de leur installation initiale. Par exemple :
Pour vérifier un paquetage contenant un fichier particulier :
rpm -Vf /bin/vi |
Pour vérifier TOUS les paquetages installés :
rpm -Va |
Pour comparer un paquetage à un fichier de paquetage RPM :
rpm -Vp foo-1.0-1.i386.rpm |
Si la vérification est correcte, elle ne fournit aucun résultat. S'il y a des discordances, elles sont affichées. Le format du résultat est une chaîne de 8 caractères, éventuellement associée à la lettre "c" indiquant un fichier de configuration, puis au nom de fichier. Chacun des 8 caractères indique le résultat d'une comparaison entre un attribut du fichier et la valeur de cet attribut enregistrée dans la base de données RPM. Un simple "." (point) signifie que le test a réussi. Les caractères suivants indiquent l'échec de certains tests :
5 -- Somme de contrôle MD5
S -- Taille de fichier
L -- Lien symbolique
T -- Date de modification de fichier
D -- Périphérique
U -- Utilisateur
G -- Groupe
M -- Mode (inclut des autorisations et un type de fichier)
Si vous voyez un résultat affiché, essayez de déterminer s'il est préférable de supprimer ou de réinstaller le paquetage, ou de résoudre le problème autrement.
Précédent | Sommaire | Suivant |
Manipulation de paquetage | Niveau supérieur | Vérification de la "signature" d'un paquetage |