Table des matières

Gestion des paquets RPM

Installation de package : commandes :

Options :

Attention il y a des sécurités :

Les fichiers de configuration ne sont pas écrasés : ils sont renommés soit en .rpmsave, soit en .rpmnew

Options :

Les mêmes que pour l'installation avec en plus :

options fortement déconseillées, sinon risque de se trouver avec un système instable a court terme !

Suppression de package :

Sécurité souvent négligées, mais a mon avis très importantes :

Attention :

Interrogation :

Utilisations simples :

shell-script : Toutes les commandes d'interrogation sont en fait des macros, pour simplifier les requêtes courantes. En fait chaque package est décrit par un ensemble d'attributs (117) dans la base de données rpm, qui peuvent être interrogés séparément. Exemples :

rpm -qa --queryformat "%{SIZE} %{NAME} %{VERSION}\n" | sort -n
rpm -qa --queryformat "%{INSTALLTIME:date} %{NAME} %{VERSION}\n" | sort -n
rpm -q --querytags

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

Intallation des pasquets .src.rpm

Les paquetages SRPM (Source RPM) contiennent les sources d'un logiciel prêtes à être recompilées et transformées en paquetage rpm. Afin de reconstruire un paquetage rpm à partir d'un srpm (fichier .src.rpm), il faut utiliser la commande :

rpmbuild --rebuild paquetage.src.rpm

Le paquetage rpm résultant se trouvera dans /usr/src/RPM/RPMS/<arch> où <arch> est i386, i586, ppc, etc. suivant votre architecture.

Pour simplement installer le paquetage, sans reconstruire le fichier .rpm, faire :

rpmbuild --recompile paquetage.src.rpm

Cela peut être très utile pour installer un programme qui a été compilé avec des versions de librairies différentes des votres et qui refuse donc de s'installer, tout en conservant l'intégrité de votre base de données des rpm (tout programme installé devrait être dans la base, mais si vous installez à partir des sources .tar.gz par ./configure && make install, cela ne sera pas le cas.)

Quelle est la différence entre "installer" et "mettre à jour" ?

La mise à jour (upgrade en anglais) remplace l'ancien paquetage par le nouveau, tandis que l'installation conserve si possible l'ancienne version du programme et installe la nouvelle en parallèle.

Cela peut être fort utile pour les bibliothèques : lorsque vous essayez de mettre à jour une bibliothèque, vous pouvez rompre des dépendances avec les programmes déjà installés (s'il y a un gros saut de version). Afin de ne pas avoir de problèmes, au lieu de mettre à jour la nouvelle version, installez-la ; ainsi l'ancienne version restera présente et les anciens programmes tourneront sans problème. Cela ne pose aucun problème d'avoir plusieurs versions d'une bibliothèque installée sur un système.