Red Hat Linux 7.1: Guide de personnalisation officiel Red Hat Linux | ||
---|---|---|
Précédent | Chapitre 17. Gestion des paquetages à l'aide de RPM | Suivant |
RPM a cinq modes d'opération de base (sans compter la construction de paquetages) : installation, désinstallation, mise à jour, recherche et vérification. Cette section vous donne un aperçu de chacun de ces modes. Pour obtenir plus de détails et connaître les différentes options, consultez rpm --help ou reportez-vous à la la section intitulée Autres ressources qui vous donnera plus d'informations sur RPM.
Avant d'utiliser un paquetage RPM, vous devez savoir où le trouver. Si vous cherchez sur Internet, vous découvrirez sans doute de nombreux référentiels, mais si vous êtes à la recherche de paquetages RPM créés par Red Hat, vous les trouverez aux endroits suivants :
CD-ROM Red Hat Linux officiels
Page Web Errata Red Hat, à l'adresse http://www.redhat.com/support/errata
Site FTP miroir Red Hat, disponible à l'adresse http://www.redhat.com/mirrors.html
Red Hat Network — voir Chapitre 19 pour plus de détails sur Red Hat Network
Les noms de fichier des paquetages RPM ressemblent généralement à ceci : foo-1.0-1.i386.rpm. Le nom de fichier comprend le nom du paquetage (foo), la version (1.0), l'édition (1) et l'architecture (i386). Rien de plus simple que d'installer un paquetage ; vous n'avez qu'à entrer la commande suivante à l'invite du shell :
# rpm -ivh foo-1.0-1.i386.rpm foo #################################### # |
Comme vous pouvez le constater, RPM affiche le nom du paquetage, puis une succession de symboles dièse pour indiquer la progression de l'installation du paquetage.
Remarque | |
---|---|
Bien que la commande rpm -ivh foo-1.0-1.i386.rpm soit couramment utilisée pour installer des paquetages RPM, vous pourriez aussi utiliser la commande rpm -Uvh foo-1.0-1.i386.rpm. -U sert généralement à mettre à jour les paquetages, mais elle peut aussi installer de nouveaux paquetages. Reportez-vous à la la section intitulée Mise à jour pour avoir plus de renseignements au sujet de l'utilisation de l'option -U de RPM. |
L'installation des paquetages a été conçue de façon à être simple, mais des erreurs peuvent parfois survenir :
Si vous installez un paquetage dont la version est déjà installée, le système affiche :
# rpm -ivh foo-1.0-1.i386.rpm foo package foo-1.0-1 is already installed # |
Si vous désirez poursuivre l'installation malgré le fait que la version du paquetage soit déjà installée, utilisez l'option --replacepkgs, qui indique ainsi à RPM d'ignorer le message d'erreur.
# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm foo #################################### # |
Cette option peut s'avérer utile lorsque des fichiers installés du paquetage RPM ont été éliminés ou lorsque vous voulez les fichiers de configuration originaux du paquetage RPM à installer.
Si vous tentez d'installer un paquetage contenant un fichier déjà installé par un autre paquetage ou une version précédente du même 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 # |
Pour faire en sorte que RPM ignore cette erreur, utilisez l'option suivante :
# 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 foo-1.0-1.i386.rpm failed dependencies: bar is needed by foo-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), utilisez l'option --nodeps.
La désinstallation d'un paquetage est aussi simple que l'installation. Entrez simplement la commande suivante à l'invite du shell :
# rpm -e foo # |
Remarque | |
---|---|
Notez que nous avons utilisé le nom de paquetage foo, pas celui du fichier original du paquetage foo-1.0-1.i386.rpm. Pour désinstaller un paquetage, vous devrez remplacer foo par le nom du paquetage en question. |
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 l'option --nodeps.
La mise à jour d'un paquetage est semblable à l'installation. Entrez la commande suivante à l'invite du shell :
# rpm -Uvh foo-2.0-1.i386.rpm foo #################################### # |
Ce que vous ne voyez pas ci-dessus est que RPM désinstalle automatiquement les anciennes versions du paquetage foo. En réalité, il pourrait être plus judicieux de toujours utiliser la commande -U pour installer des paquetages car elle fonctionne même lorsque aucune version antérieure du paquetage n'est installée.
Comme RPM effectue une mise à jour intelligente des paquetages avec des fichiers de configuration, le message suivant peut apparaître :
saving /etc/foo.conf as /etc/foo.conf.rpmsave |
Ce message signifie que les changements que vous avez apportés au fichier de configuration ne sont peut-être pas "compatibles" avec le nouveau fichier de configuration du paquetage. Aussi, RPM sauvegarde-t-il le fichier original et installe-t-il le nouveau. Vous devez ensuite déterminer les différences entre les deux fichiers de configuration et trouver une solution le plus rapidement possible, afin d'assurer que votre système continue de fonctionner correctement.
La mise à jour est en fait une combinaison de l'installation et de la désinstallation. Il se pourrait donc que le système affiche des erreurs d'installation ou de désinstallation lors de la mise à jour d'un paquetage RPM. Un autre type d'erreur peut également survenir : lorsque RPM pense que vous essayez de faire la mise à jour d'un paquetage au moyen d'une version plus ancienne. Le système affiche alors ceci :
# rpm -Uvh foo-1.0-1.i386.rpm foo package foo-2.0-1 (which is newer) is already installed # |
Pour faire en sorte que le paquetage RPM soit mis à jour malgré tout, utilisez l'option --oldpackage :
# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm foo #################################### # |
L'actualisation d'un paquetage est semblable à la mise à jour. Entrez la commande suivante à l'invite du shell :
# 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 un 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'option d'actualisation de RPM peut fonctionner pour des paquetages pris individuellement ou pour des groupes de paquetages. Exemple : si vous venez tout juste de télécharger un grand nombre de paquetages et désirez seulement mettre à jour les paquetages, parmi ceux-ci, déjà installés sur votre système, utilisez l'option d'actualisation. Ce faisant, vous n'aurez pas à supprimer les paquetages non voulus du groupe de paquetages téléchargés avant d'utiliser RPM.
Pour ce faire, entrez simplement la commande suivante :
# rpm -Fvh *.rpm |
De cette façon, RPM ne met à jour que les paquetages déjà installés.
L'interrogation de la base de données des paquetages installés s'effectue à l'aide de la commande rpm -q. La commande rpm -q foo imprime le nom du paquetage, la version et l'édition du paquetage installé foo :
# rpm -q foo foo-2.0-1 # |
Remarque | |
---|---|
Notez que nous avons utilisé le nom du paquetage foo. Pour procéder à la recherche d'un autre paquetage, vous devrez remplacer foo par le nom du paquetage en question. |
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. Elles sont appelées options de spécification de paquetage.
-a recherche tous les paquetages actuellement installés.
-f <fichier> interroge le paquetage qui possède le <fichier>. Lorsque vous spécifiez un fichier, vous devez indiquer son chemin d'accès complet (par exemple, /usr/bin/ls).
-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é. Elles sont appelées options de sélection d'informations.
-i affiche des informations sur le paquetage, telles que le nom, la description, l'édition, la taille, la date de création, l'éditeur, etc.
-l affiche la liste des fichiers contenus dans le paquetage.
-s affiche l'état de tous les fichiers du paquetage.
-d affiche la liste des fichiers de documentation (pages de manuel, pages d'informations, fichiers README, etc.).
-c affiche la liste des fichiers de configuration. Il s'agit de fichiers que vous modifiez après l'installation pour adapter le paquetage à votre système (comme sendmail.cf, passwd, inittab, etc.).
Pour les options qui affichent une liste de fichiers, vous pouvez ajouter -v à la 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 installé à 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 huit caractères (un c indique un fichier de configuration) et le nom du fichier. Chacun des huit 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 du fichier
D — Périphérique
U — Utilisateur
G — Groupe
M — Mode (inclut les autorisations et le type de fichier)
? — Fichier non lisible
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 |
Gestion des paquetages à l'aide de RPM | Niveau supérieur | Vérification de la signature d'un paquetage |