Utilisation de RPM

RPM offre cinq modes de fonctionnement de base (sans compter la construction du paquetage) : installation, désinstallation, mise à jour, interrogation et vérification. Cette section contient un aperçu de chaque mode. Pour obtenir des détails et options complets, essayez rpm --help, ou consultez la la section intitulée Autres ressources de RPM pour plus d'informations sur RPM.

Installation

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. Installer un paquetage, c'est aussi simple que :

# rpm -ivh foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

Comme vous pouvez le voir, RPM imprime le nom du paquetage (qui ne correspond pas nécessairement à celui du fichier qui aurait pu être 1.rpm), puis imprime une série de symboles dièse, à mesure que le paquetage est installé, afin de montrer l'état d'avancement de l'opération.

NoteRemarque
 

Bien que l'utilisation de la commande rpm -ivh foo-1.0-1.i386.rpm pour l'installation de paquetages soit fréquente, vous pouvez envisager d'utiliser rpm -Uvh foo-1.0-1.i386.rpm à la place. La commande -U est généralement utilisée pour mettre à jour des paquetages, mais elle permet également d'en installer de nouveaux. Reportez-vous à la la section intitulée Mise à jour pour plus d'informations sur l'utilisation de la commande -U de RPM.

L'installation des paquetages est conçue dans un souci de simplicité mais elle peut générer des erreurs :

Paquetage déjà installé

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 voulez réellement installer le paquetage malgré tout, vous pouvez entrer --replacepkgs dans la ligne de commande, pour indiquer à RPM d'ignorer l'erreur :

# rpm -ivh --replacepkgs foo-1.0-1.i386.rpm
foo                       ####################################
#
            

Conflits de fichiers

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                       ####################################
#
	      

Dépendance non résolue

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 résoudre cette erreur, installez les paquetages demandés. 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.

Désinstallation

La désinstallation d'un paquetage est aussi simple que son installation :

# rpm -e foo
#
	    

NoteRemarque
 

Nous avons utilisé le nom de paquetage "foo", pas le nom du fichier de paquetage d'origine "foo-1.0-1.i386.rpm". Pour désinstaller un paquetage, remplacez foo par le nom de fichier du paquetage d'origine.

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 faire en sorte que RPM ignore cette erreur et désinstalle le paquetage malgré tout (ce qui est une mauvaise idée étant donné que le paquetage qui en dépend cessera probablement de fonctionner correctement), entrez --nodeps dans la ligne de commande.

Mise à jour

La mise à jour d'un paquetage est une opération similaire à l'installation.

# rpm -Uvh foo-2.0-1.i386.rpm
foo                       ####################################
#
	    

Le message ci-dessus indique que RPM a automatiquement désinstallé toutes les versions plus anciennes du paquetage foo. Il se peut que vous vouliez toujours utiliser la commande -U pour installer des paquetages, du fait qu'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 :

enregistrement de /etc/foo.conf as /etc/foo.conf.rpmsave
          

Ceci signifie que les modifications apportées au fichier de configuration risquent de ne pas être compatibles avec le nouveau fichier de configuration du paquetage, de sorte que RPM a enregistré votre fichier d'origine et en a installé un nouveau. Vous devez étudier et résoudre les différences entre les deux fichiers le plus rapidement possible pour veiller à ce que le système continue à fonctionner correctement.

Une mise à jour étant une combinaison d'opérations d'installation et de désinstallation, vous risquez de rencontrer des erreurs résultant de ces modes, plus une erreur supplémentaire : si RPM considère que vous tentez d'effectuer une mise à niveau vers un paquetage portant un numéro de version plus ancien, le système affiche le message suivant :

# 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 faire en sorte que RPM effectue malgré tout la mise à niveau, utilisez --oldpackage dans la ligne de commande :

# rpm -Uvh --oldpackage foo-1.0-1.i386.rpm
foo                       ####################################
#
	    

Actualisation

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 nouvelle version d'un paquetage installé est traitée par l'option d'actualisation de RPM, elle est mise à jour. Toutefois, l'option d'actualisation n'installe pas un paquetage s'il n'existe pas de paquetage du même nom installé précédemment. Cette procédure diffère de celle mise en oeuvre si vous utilisez l'option de mise à jour de RPM, étant donné qu'une mise à jour installe effectivement les paquetages, qu'une version plus ancienne ait été installée ou non.

L'option d'actualisation de RPM fonctionne bien avec des paquetages uniques ou un groupe de paquetages. Elle est particulièrement pratique si vous venez de télécharger un grand nombre de paquetages différents et voulez uniquement mettre à niveau ceux qui sont déjà installés sur le système. L'option d'actualisation vous évite de devoir opérer une sélection parmi les paquetages téléchargés, en supprimant les éléments non souhaités avant de les utiliser.

Dans ce cas, vous entrez simplement la commande suivante :

# rpm -Fvh *.rpm
	    

RPM met automatiquement à jour les paquetages déjà installés.

Recherche

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 le(s) paquetage(s) que vous voulez interroger. On les appelle options de spécification 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.

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.

Vérification

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 :

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 d'un attribut du fichier à 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 :

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.