rpm
:
un tel fichier contient généralement
ldconfig
ou
mktexlsr
)
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.
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 |
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 |
toto.tar.gz
.
tar zxvf toto.tar.gz mv toto toto.orig tar zxvf toto.tar.gz vi toto/foo.bar diff toto.orig toto > toto.patchet qu'on les utilise ainsi
tar zxvf toto.tar.gz patch < toto.patch
toto.spec
contenant toutes les instructions
pour compiler, installer ou desinstaller le logiciel.
Voici un exemple. Le caractère %
est léequivalent de l'antislash
en LaTeX.
# Ceci est un commentaire Summary Name: toto Version: 0.00 Release: 1 Copyright: GPL Group: Source: http://exploit.org/sendmail/toto.tar.gz URL: http://www.rootshell.org/ Packager: W.B. Yeats %description Ici on peut mettre tout le texte que l'on veut %prep rm -rf $RPM_BUILD_DIR/toto gzip -dc $RPM_SOURCE_DIR/toto.tar.gz %build make %install make install %files %doc /usr/doc/toto/README %doc /usr/doc/toto/TODO /usr/bin/toto /usr/man/man1/toto.1On remarquera qu'il faut donner soi-même la liste des fichiers ainsi installés...
rpm -baOn récupère alors deux fichiers
RPMS/i386/toto-0.00-1.i386.rpm SRPMS/toto-0.00-1.src.rpmPour se débarasser des résidus de compilation, on peut taper
rpm -b --clean