Home Page

Chapitre Suivant , Précédent , Début du manuel , Table des matières générale


Chapitre 7

Gestion des packages avec RPM

RPM (Red Hat Package Manager) est un outil de gestion de packages pour système Linux et Unix. Red Hat Software encourage les différents distributeurs à jeter un coup d'£il à RPM et à l'utiliser dans leurs propres produits. RPM est distribuable sous les termes de la licence GPL.

RPM permet à utilisateur de maintenir facilement son système : l'installation, la suppression, et la maintenance de package s'effectue à l'aide d'une simple ligne de commande. RPM maintient une base de données sur les packages installés et sur leurs fichiers, ce qui vous permet d'interroger et de vérifier votre système. Durant les mises à jours, RPM conserve vos fichiers de configuration ce qui est impossible avec des fichiers .tar.gz.

RPM permet aux développeurs de créer facilement des packages sources et binaires, qu'ils pourront distribuer auprès des autres utilisateurs. Le procédé utilisé est d'une grande simplicité et se déroule grâce à un seul fichier accompagné ou non de fichiers patches. De plus, il pourront facilement passer vers de nouvelles versions de packages.

Actuellement, un ouvrage est en cours de réalisation sur RPM. Pour plus de renseignements contactez Red Hat Software ou consultez la serveur http://www.redhat.com.

7 1 Objectifs de RPM

Avant de savoir utilisez RPM, il est préférable de savoir à quoi il peut servir.

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

7 2.1 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 packge 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.

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

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

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

Pour préciser les information à afficher, utilisez les options suivantes : Pour obtenir les listes de fichiers dans le même format qu'utilise la commande ls -l, utilisez l'option -v.

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

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 :

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

7 3 Impressionner vos amis avec RPM

RPM est un utilitaire très utile pour maintenir le système, ainsi que pour détecter et corriger des problèmes. Le meilleur moyen de vous le faire comprendre, est de vous présenter des exemples. Ce ne sont que des exemples, vous trouverez bien d'autres applications de RPM sur votre propre système.

7 4 Autres ressources RPM

Pour plus d'informations sur RPM, consultez la page du man, l'écran d'aide (rpm -help), et les documents disponibles via :

ftp ://ftp.redhat.cpm/pub/code/rpm

Un ouvrage consacré à RPM sera bientôt disponible (automne 1996). Vous trouverez des informations sur le site http://www.redhat.com, dès qu'il sera édité.

Il existe aussi une mailing liste consacrée à RPM : rpm- list@redhat.com (archivée sur http://www.redhat.com). Pour souscrire, envoyez un mail à rpm-list-request@redhat.com avec le mot suscribe comme sujet. rpm-list-request@redhat.com suscribe


Chapitre Suivant , Précédent , Début du document

Table des matières de ce chapitre, Table des matières générale


(c)1996 Pour l'adaptation française : "Logiciels du Soleil"