Red Hat Enterprise Linux 3: Guide d'administration système | ||
---|---|---|
Précédent | Chapitre 16. Gestion des paquetages avec 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 d'informations et connaître les différentes options, consultez rpm--help ou reportez-vous à la Section 16.5 qui vous donnera plus d'informations sur RPM.
Avant d'utiliser un RPM, vous devez savoir où les trouver. Une recherche sur Internet fournit de nombreux référentiels de RPM, mais si vous recherchez des paquetages RPM construits par Red Hat, vous pourrez les trouver aux emplacements suivants :
Les CD-ROM de Red Hat Enterprise Linux
La page d'errata de Red Hat se trouve à l'adresse suivante : http://www.redhat.com/apps/support/errata/
Un site miroir FTP de Red Hat qui se trouve à l'adresse suivante : http://www.redhat.com/download/mirror.html
Red Hat Network — Reportez-vous au Chapitre 18 pour obtenir de plus amples informations sur Red Hat Network
Les noms de fichiers 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 (en tant que super-utilisateur) :
rpm -Uvh foo-1.0-1.i386.rpm |
Si l'installation est réussie, la sortie suivante apparaîtra à l'écran :
Preparing... ########################################### [100%] 1:foo ########################################### [100%] |
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.
À partir de la version 4.1 de RPM, la signature d'un paquetage est vérifiée automatiquement lors de l'installation ou de la mise à niveau d'un paquetage. Si la vérification de la signature échoue, un message d'erreur semblable à l'extrait ci-dessous apparaîtra à l'écran :
error: V3 DSA signature: BAD, key ID 0352860f |
S'il s'agit d'une nouvelle signature (en-tête uniquement), un message d'erreur semblable à l'extrait ci-dessous apparaîtra à l'écran :
error: Header V3 DSA signature: BAD, key ID 0352860f |
Si la clé nécessaire à la vérification de la signature n'est pas installée sur votre système, le message contiendra le mot NOKEY comme dans l'extrait ci-dessous :
warning: V3 DSA signature: NOKEY, key ID 0352860f |
Reportez-vous à la Section 16.3 pour plus d'informations sur la vérification de la signature d'un paquetage.
![]() | Remarque |
---|---|
Si vous installez un paquetage de noyau, utilisez plutôt la commande rpm -ivh. Reportez-vous au Chapitre 39 pour plus d'informations. |
L'installation des paquetages a été conçue de façon à être simple, mais des erreurs peuvent parfois survenir.
Si le paquetage de la même version est déjà installé, le message ci-dessous apparaîtra à l'écran :
Preparing... ########################################### [100%] package foo-1.0-1 is already installed |
Si vous désirez poursuivre l'installation bien que la même version du paquetage soit déjà installée, vous pouvez utiliser l'option --replacepkgs ci-dessous pour indiquer à RPM de ne pas tenir compte du message d'erreur :
rpm -ivh --replacepkgs foo-1.0-1.i386.rpm |
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, un message d'erreur semblable à l'extrait ci-dessous apparaîtra à l'écran :
Preparing... ########################################### [100%] file /usr/bin/foo from install of foo-1.0-1 conflicts with file from package bar-2.0.20 |
Pour faire en sorte que RPM ignore cette erreur, utilisez l'option --replacefiles :
rpm -ivh --replacefiles foo-1.0-1.i386.rpm |
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, une sortie semblable à l'extrait suivant apparaîtra à l'écran :
Preparing... ########################################### [100%] error: Failed dependencies: bar.so.2 is needed by foo-1.0-1 Suggested resolutions: bar-2.0.20-3.i386.rpm |
Si vous installez un paquetage faisant partie de l'ensemble de CD-ROM de Red Hat Enterprise Linux, il vous proposera généralement le(s) paquetage(s) nécessaire(s) à la résolution de la dépendance. Localisez le paquetage en question sur les CD-ROM de Red Hat Enterprise Linux ou sur le site FTP Red Hat (ou un site miroir), et ajoutez-le à la commande comme dans l'extrait ci-dessous :
rpm -ivh foo-1.0-1.i386.rpm bar-2.0.20-3.i386.rpm |
Si l'installation des deux paquetages est réussie, une sortie semblable à l'extrait suivant apparaîtra à l'écran :
Preparing... ########################################### [100%] 1:foo ########################################### [ 50%] 2:bar ########################################### [100%] |
Si aucun paquetage n'est suggéré pour résoudre la dépendance, vous pouvez essayer d'utiliser l'option --redhatprovides pour déterminer le paquetage contenant le fichier requis. Pour utiliser cette option, il faut que le paquetage rpmdb-redhat soit installé sur votre système.
rpm -q --redhatprovides bar.so.2 |
Si le paquetage contenant bar.so.2 se trouve dans la base de données installée du paquetage rpmdb-redhat, le nom du paquetage apparaîtra à l'écran comme dans l'extrait suivant :
bar-2.0.20-3.i386.rpm |
Si vous souhaitez 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 son installation. Entrez simplement la commande suivante à l'invite du shell :
rpm -e foo |
![]() | Remarque |
---|---|
Notez que nous avons utilisé le nom de paquetage foo, et non pas celui du fichier original du paquetage foo-1.0-1.i386.rpm. Pour désinstaller un paquetage, remplacez foo par le nom d'origine 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 :
Preparing... ########################################### [100%] error: removing these packages would break dependencies: foo is needed by bar-2.0.20-3.i386.rpm |
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 à son installation. Entrez la commande suivante à l'invite du shell :
rpm -Uvh foo-2.0-1.i386.rpm |
Ce que vous ne voyez pas ci-dessus est que RPM désinstalle automatiquement toute version ancienne du paquetage foo. En fait, vous souhaiterez peut-être toujours utiliser la commande -U pour installer des paquetages car elle fonctionne même lorsqu'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 à l'écran :
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 le fichier original et installe 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 à niveau est en fait une combinaison du processus d'installation et de désinstallation. Il se pourrait donc que le système affiche des messages d'erreurs d'installation ou de désinstallation lors de la mise à niveau d'un paquetage RPM. Un autre type d'erreur peut également survenir si RPM suppose que vous essayez d'effectuer la mise à niveau d'un paquetage au moyen d'une version plus ancienne. Une sortie semblable à l'extrait suivant apparaîtra à l'écran :
package foo-2.0-1 (which is newer than foo-1.0-1) 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 |
L'actualisation d'un paquetage est semblable à sa mise à jour. Entrez la commande suivante à l'invite du shell :
rpm -Fvh foo-1.2-1.i386.rpm |
L'option d'actualisation de RPM compare les versions de paquetages spécifiées dans la ligne de commande aux versions déjà 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 si un paquetage du même nom n'a pas été précédemment installé. La situation est différente avec l'option de mise à niveau de RPM, étant donné que la mise à niveau installe effectivement les paquetages, qu'une version antérieure soit déjà installée ou non.
L'option d'actualisation de RPM fonctionne aussi bien pour des paquetages sélectionnés individuellement que pour des groupes de paquetages. Si par exemple, vous venez tout juste de télécharger un grand nombre de paquetages différents et désirez mettre à niveau seulement les paquetages déjà installés sur votre système, utilisez l'option d'actualisation. Ce faisant, vous n'aurez pas à supprimer les paquetages du groupe de paquetages téléchargés dont vous n'avez pas besoin, avant d'utiliser RPM.
Dans ce cas, exécutez la commande suivante :
rpm -Fvh *.rpm |
RPM met seulement à niveau les paquetages déjà installés.
Utilisez la commande rpm -q pour interroger la base de données des paquetages installés. La commande rpm -q foo affiche le nom, la version et le numéro d'édition du paquetage foo installé, comme ci-dessous :
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 devez 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 propriétaire de <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, la version, 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 des listes 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 spécification 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 |
Cette commande peut être utile si vous pensez que vos bases de données RPM sont corrompues.
Si la vérification est bonne, elle ne fournit aucune sortie. En revanche, s'il existe des discordances, elles sont affichées. Le format de la sortie 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 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 (comprend les permissions 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 avec RPM | Niveau supérieur | Vérification de la signature d'un paquetage |