Manuel RedHat 4.1 - Utilisation de RPM << >> Up Title Contents

Utilisation de RPM


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).

Installation

foo-1.0-1.i386.rpm est un exemple de fichier 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 la commande :

$ rpm -ivh foo-1.0-1.i386.rpm
foo			####################################
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.

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 :

$ 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 vraiment installer ce package, utilisez l'option --replacepkgs qui permet d'ignorer l'erreur.

Fichiers en conflit

SI vous tentez d'installer un package qui contient un fichier déjà installé sur le système, vous verrez :

$ 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 ignorer l'erreur, utilisez l'option --replacefiles.

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 :

$ rpm -ivh bar-1.0-1.i386.rpm
failed dependencies :
foo is needed by bar-1.0-1
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.

Suppression

La suppression d'un package est aussi simple que installation :

$ rpm -e foo
Note : nous utilisons ici le nom foo, qui n'est pas le nom original du package (foo-1.0-1.i386.rpm).

Lors de la suppression d'un package, vous pouvez rencontrer des problèmes de dépendances. Vous verrez :

$ rpm -e foo
removing these packages would break dependencies :
foo is needed by bar-1.0-1
Vous pouvez tout de même forcer la suppression (mais le package risque fort de ne pas fonctionner) en utilisant l'option --nodeps.

Mise à jour

La mise à jour d'un package est aussi simple que installation :

$ rpm -Uvh foo-2.0-1.i386.rpm
foo			####################################
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 effectue une mise à jour intelligente avec une sauvegarde des fichiers de configuration :

saving /etc/foo.conf as /etc/foo.conf.rpmsave
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.

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 :

$ 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 ignorer cette erreur, utilisez l'option --oldpackage.

Interrogation

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 :

$ rpm -q foo
rpm-2.0-1
Au lieu d'indiquer le nom du package, vous pouvez 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 préciser les information à afficher, utilisez les options suivantes :

  • -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, ...)

  • Pour obtenir les listes de fichiers dans le même format qu'utilise la commande ls -l, utilisez l'option -v.

    Vérification

    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 :

  • Pour vérifier qu'un package contient un fichier :

    rpm -Vf /bin/vi
  • Pour vérifier tous les packages installés :

    rpm -Va
  • Pour vérifier un package installé :

    rpm -Vp foo-1.0-1.i386.rpm
    Ceci peut être utile si vous pensez que votre base données est corrompue.

  • 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:

  • 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)

  • Si un résultat apparaît, c'est à vous de choisir quoi faire (supprimer le package, le réinstaller, corriger le problème, ...).


    << >> Up Title Contents

    © 1996-1997 "RedHat et les Logiciels du Soleil"