8.2 Utilisation de RPMRPM possède cinq fonctions différentes (sans compter la création de package) : installation, suppression, mise à jour, interrogation et vérification. Voici une présentation de ces cinq fonctions. Pour plus d'informations et pour une description des options, utilisez la commande rpm --help ou consultez les pages du man (ainsi que l'ouvrage consacré à RPM). 8.2.1 InstallationLes packages RPM ont généralement des noms du type foo-1.0-1.i386.rpm, (foo) est le nom du package, (1.0) la version, (1) le numéro de release, et (i386) l'architecture. Pour installer un package, utilisez simplement la commande :
Comme vous pouvez le constater, RPM affiche le nom du package (qui ne correspond pas forcément au nom du fichier, qui aurait pu être 1.rpm) et une succession de caractères # qui représente une jauge de progression.$ rpm -ivh foo-1.0-1.i386.rpm foo #################################### L'installation de package est très simple, mais vous pouvez tout de même rencontrer quelques erreurs : Package déjà installéSi le package est déjà installé, vous verrez apparaître :
Si vous voulez vraiment installer ce package, utilisez l'option --replacepkgs qui permet d'ignorer l'erreur.$ 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 Fichiers en conflitSI vous tentez d'installer un package qui contient un fichier déjà installé sur le système, vous verrez apparaître :
Pour ignorer l'erreur, utilisez l'option --replacefiles.$ 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 DépendancesDes packages RPM peuvent dépendre d'autres packages, ce qui signifie qu'ils doivent au préalable être installés pour que tout fonctionne correctement. Si vous tentez d'installer un package dépendant d'un autre package, vous verrez apparaître :
Pour éviter ce problème, vous devez d'abord installer
les packages requis. Vous pouvez tout de même forcer l'installation (mais
le package risque fort de ne pas fonctionner) en utilisant l'option
--nodeps.
8.2.2 SuppressionLa suppression d'un package est aussi simple que son installation :
$ rpm -e foo Note : nous utilisons ici le nom foo, qui n'est pas le nom original du package
(ici foo-1.0-1.i386.rpm). Lors d'une suppression , vous pouvez rencontrer des problèmes de dépendances dans le cas où le package que vous tentez de supprimer est requis par d'autres packages. Vous verrez apparaître :
Vous pouvez tout de même forcer la suppression (mais les packages qui en dépendent risquent fort de ne pas fonctionner) en utilisant l'option --nodeps.$ rpm -e foo removing these packages would break dependencies : foo is needed by bar-1.0-1 8.2.3 Mise à jourLa mise à jour d'un package est aussi simple que son installation :
Vous ne vous en apercevrez pas, mais RPM supprime automatiquement les anciennes versions du package foo. Vous pouvez toujours utiliser l'option -U pour installer les packages, puisqu'elle fonctionne même si le système ne possède pas d'ancienne version du package.$ rpm -Uvh foo-2.0-1.i386.rpm foo #################################### RPM effectue une mise à jour intelligente du package avec une sauvegarde des fichiers de configuration, vous verrez apparaître un message du type :
saving /etc/foo.conf as /etc/foo.conf.rpmsaveCela signifie que les modifications que vous avez apportées au fichier de configuration risquent de ne plus être compatibles avec le nouveau fichier de configuration du package, RPM effectue donc une sauvegarde du fichier d'origine et installe le nouveau. Observez les différences entre les deux fichiers, afin que le système puisse continuer à fonctionner correctement. Une mise à jour combine en fait les fonctions d'installation et de suppression de package, vous pouvez donc rencontrer une des erreurs décrites plus haut, plus une. Si RPM pense que vous êtes en train d'effectuer une mise à jour vers une version plus ancienne, vous verrez apparaître :
Pour ignorer cette erreur et pour donc forcer la mise à jour, utilisez l'option --oldpackage.$ 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 8.2.4 InterrogationPour interroger la base de données sur les packages installés, utilisez la commande rpm -q. Utilisez simplement rpm -q foo pour afficher le nom, la version et le numéro de release du package foo :
$ rpm -q foo Vous pouvez remplacer le nom du package par une des ces options (Package Specification Options) :
* -a interroge tous les packages installésIl existe plusieurs façons de spécifier les informations à afficher lors de l'interrogation des packages. Vous pouvez utiliser les options suivantes (Information Selection Options) :
* -i affiche un certain nombre d'informations sur le package (nom, description, numéro de release, taille, date de création, date d'installation, fournisseur, ...)Pour les options qui affichent une liste de fichiers, vous pouvez ajouter -v pour un affichage avec un format similaire à celui de la commande ls -l. 8.2.5 VérificationLa vérification permet de comparer des informations relatives aux fichiers installés sur le système avec celles du package d'origine. Entre autres, la vérification se fait sur la taille, sur la somme MD5, sur les permissions, sur le type, sur le propriétaire et sur le groupe de chaque fichier. rpm -V vérifie un package. Vous pouvez aussi combiner d'autres options décrites plus haut (Package Selection Options). La commande rpm -V foo vérifie que tous les fichiers du package foo sont tels qu'ils étaient lors de l'installation d'origine. Exemples :
* Pour vérifier qu'un package contient un fichier particulier :Si la vérification s'est correctement déroulée, vous ne verrez rien apparaître. Si la vérification met à jour des différences, une chaîne de huit caractères apparaît. Le caractère c suivi du nom du fichier, indique qu'il s'agit d'un fichier de configuration. Chacun des huit caractères représente une comparaison, si un point (.) apparaît cela signifie que la comparaison n'a pas échoué. Voici les caractères utilisés lorsque la comparaison a échoué :
|