RPM


1. Présentation

Beaucoup de logiciels arrivent sous le format rpm : un tel fichier contient généralement

Après installation, toutes ces informations sont stoquées dans une base de données. On peut alors savoir à quel logiciel se rattache un fichier au nom étrange, on peut vérifier l'intégrité du système (on peut avoir effacé par mégarde certains fichiers...). Le principal intéret est de pouvoir effacer un logiciel sans avoir à chercher partout où sont ses fichiers, en étant sûr de ne pas en oublier, et aussi d'être prévenu si d'autres logiciels ont besoin de celui dont on va se débarasser.

Cela dit, on constate qu'au bout d'un moment, cela ne marche plus très bien. Chez moi, les choses se sont déroulées ainsi. Je voulais installer un quelconque logiciel ; je n'en avais pas les sources mais juste le fichier rpm. La commande rpm m'a alors signalé un conflit de versions : le fichier rpm que je voulais installer était plus récent que l'exécutable rpm, celui-ci ne parvenait pas à le lire. Il m'a alors fallu installer une nouvelle version de rpm : elle était distribuée presque uniquement au format rpm, ce même format trop récent pour mon exécutable. Après avoir péniblement trouvé les sources et compilé cette nouvelle version, j'ai enfin pu installer le logiciel désiré. Bien évidemment, l'installation ne correspondait plus au contenu de la base de données rpm et certaines dépendances étaient détruites : en particulier, glint, l'interface graphique à rpm, ne parvenait plus à lire cette base de données... J'ai fini par abandonner : je n'utilise plus que des sources que je compile moi-même ou, quand je ne peux pas faire autrement, j'ai recours à rpm2cpio.

2. Pour s'y retrouver parmi les options

rpm -k toto.rpm
Vérifie l'authenticité
rpm -qp toto.rpm
Informations
rpm -qp toto.rpm -lv
Liste des fichiers
rpm -qp roro.rpm --scripts
Contenu des scripts d'installation et de desintallation
rpm -Uvh toto.rpm
Installe (normalement)
rpm -Uvh toto.rpm --oldpackage
Installe une vieille version
rpm -Uvh toto.rpm --forve --nodeps --noscripts --ignorearch --ignoreos Dernier recours avant rpm2cpio
rpm2cpio toto.rpm | cpio -ivd
Extrait les fichiers dans le répertoire courrant
rpm -qa
Liste des paquetages installés
rpm -qf /bin/ls
À quel paquetage appartient /bin/ls ?
rpm -e toto
Enlève le paquetage toto

3. Répertoires

J'ai légèrement menti, plus haut : les fichiers rpm ne contiennent pas nécessairement des exécutables, il y en a qui contiennent les sources, avec d'éventuels patches et toutes les instructions pour les compiler, les installer et les desinstaller. La commande rpm ... va mettre les choses dans divers répertoires.
SOURCES/ Les sources non modifiées (sans les patches)
SPECS/ Les fichiers *.spec, contenant les instructions de compilation, installation et desinstallation
BUILD/ Répertoire de travail, dans lequel les compilations s'effectuent
RPMS Là où seront rangés les paquetages rpm contenant les exécutables
SRPMS Là où seront rangés les paquetages rpm contenant les sources

4. Comment créer soi-même un fichier rpm ?

Il faut trois choses :

5. Pour en savoir plus

Lire le livre Maximum rpm.
Vincent Zoonekynd (zoonek@math.jussieu.fr)
(Mai 1999) Dernière modification le 25 mai 1999.