RPM possède cinq fonctionnalités différentes (sans compter la réalisation de package) : installation, suppression, mise à jour, interrogation et vérification. Voici une présentation de ces cinq fonctionnalités. Pour plus d'information et pour une description des options, utilisez la commande rpm -help ou consultez les pages du man (ainsi que l'ouvrage consacré à RPM).
Comme vous pouvez le constater, RPM affiche le nom du package (qui n'est pas forcément le nom du fichier 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 des problèmes :
Package déjà installé
Si le package est déjà installé, vous verrez :
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 conflit
SI vous tentez d'installer un package qui contient un fichier déjà installé sur le système, vous verrez :
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épendances
Des packages RPM peuvent dépendre d'autres packages, ce qui signifie qu'ils doivent au préalable être installés. Lors d'une installation, vous pouvez être confrontés à des dépendances entres les packages, vous verrez :
Pour éviter ce problème, vous devez 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.$ rpm -ivh bar-1.0-1.i386.rpm failed dependencies : foo is needed by bar-1.0-1
La suppression d'un package est aussi simple que installation :
Note : nous utilisons ici le nom foo, qui n'est pas le nom original du package (foo-1.0-1.i386.rpm).$ rpm -e foo
Lors de la suppression d'un package, vous pouvez rencontrer des problèmes de dépendances. Vous verrez :
Vous pouvez tout de même forcer la suppression (mais le package risque 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
La mise à jour d'un package est aussi simple que installation :
RPM supprime automatiquement les anciennes versions du package foo. Il est conseillé d'utiliser l'option -U pour installer les packages, car 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 avec une sauvegarde des fichiers de configuration :
Cela signifie que vos anciens fichiers de configuration risquent de ne plus être compatibles avec la nouvelle version du package, ils seront sauvegardés et RPM installera les nouveaux. Il est conseillé d'observer les différences entre les deux fichiers afin de vous assurez que votre système puisse fonctionner correctement.saving /etc/foo.conf as /etc/foo.conf.rpmsave
La mise à jour combine en fait les opérations d'installation et de suppression de package, il se peut donc que vous rencontriez des erreurs. Si RPM pense que vous êtes en train d'effectuer une mise à jour vers une version plus ancienne, vous verrez :
Pour ignorer cette erreur, 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
Pour interroger la base de données sur les packages installés, utilisez la commande rpm -q. Utilisez rpm -q foo pour afficher le nom, la version et le numéro de release du package foo :
Au lieu d'indiquer le nom du package, vous pouvez utilisez les options suivantes :$ rpm -q foo rpm-2.0-1
Pour préciser les information à afficher, utilisez les options suivantes :-a interroge tous les packages installés
-f <file> interroge tous les packages qui possèdent le fichier <file>
-F effectue la même fonction que -f mais utilise l'entrée standard pour le nom de fichier (ex : find /usr/bin | rpm -qF)
-p <packagefile> interroge le package <packagefile>
-P effectue la même fonction que -p mais utilise l'entrée standard pour le nom de package (ex : find /mnt/cdrom/RedHat/RPMS | rpm -qP)
Pour obtenir les listes de fichiers dans le même format qu'utilise la commande ls -l, utilisez l'option -v.-i affiche le nom, la description, le numéro de release, la date de création, la date d'installation, ... du package
-l affiche la liste de fichiers contenus dans le package
-s décrit l'état des fichiers du packages (normal ou absent)
-d affiche la liste des fichiers de documentations (pages du man, pages info, REDAME, ...)
-c affiche la liste des fichiers de configuration (sendmail.cf, passwd, inittab, ...)
La vérification permet de comparer les fichiers installés avec ceux du package d'origine. La comparaison 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 combiner la vérification avec d'autres options. La commande rpm -V foo vérifie que tous les fichiers de ce package sont identiques à ceux d'origine. Exemples :
Si toutes les vérifications se sont passées correctement, aucun résultat n'apparaît. Par contre, si des différences sont rencontrées, un résultat apparaît. Le format du résultat est une chaîne de huit caractères, un c peut dénoter un fichier de configuration, suivie du nom du fichier. Chacun des caractères représente le résultat de la comparaison, si un point (.) apparaît cela signifie que la comparaison n'a pas échouée. Les caractères utilisés sont les suivants:Pour vérifier qu'un package contient un fichier :
rpm -Vf /bin/viPour vérifier tous les packages installés :
rpm -VaPour vérifier un package installé :
Ceci peut être utile si vous pensez que votre base données est corrompue.rpm -Vp foo-1.0-1.i386.rpm
Si un résultat apparaît, c'est à vous de choisir quoi faire (supprimer le package, le réinstaller, corriger le problème, ...).5 Somme MD5
S Taille du fichier
L Lien symbolique
T Date de modification du fichier
D Périphérique
U Utilisateur
G Groupe
M Mode (permissions et type de fichier)