Outils pour utilisateurs

Outils du site


distributions_rpm:introduction_a_rpm

Gestion des paquets RPM

Installation de package : commandes :

  • rpm -i/–install : installe sans remplacer une version précédente

Options :

  • -vh : pour voir la progression de l'installation
  • –test : teste juste les conflits potentiels.
  • rpm -U/–upgrade : installe ou remplace un package
  • rpm -F/–freshen : installe (et remplace) un package seulement si une version était déjà installée

Attention il y a des sécurités :

  • conflits de fichiers : un fichier ne peut appartenir a plusieurs packages
  • gestion des versions : on ne peut mettre a jour qu'avec une version >= a l'ancienne

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 :

  • –oldpackage : force un retour arrière sur la version
  • –replacepkgs : force une réinstallation
  • –relocate : permet de “reloger” des fichiers, c'est-à-dire les installer a un autre emplacement que celui prévu par le packager. Ne marche pas avec tous les packages, ni avec toutes les versions de rpm.

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

  • –nodeps : ne pas tenir compte des dépendances
  • –force : forcer l'installation

Suppression de package :

  • rpm -e/–uninstall

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

  • rpm -K/–checksig : à faire avant toute installation, permet de vérifier la signature du package, et donc que le package n'a pas été corrompu par un pirate
  • rpm -V/–verify : a faire pour voir si quelqu'un/quelque chose n'a pas modifié des fichiers du package (taille, droits, checksum …)

Attention :

  • pour utiliser rpm -K, il faut avoir “importé” la clef publique du packager dans la base de l'usager courant (gpg –import RPM-GPG-KEY pour la distribution).
  • en cas de problème du type “mon logiciel x ne marche plus”, rpm -V permet de contrôler ce qui a changé depuis l'installation

Interrogation :

  • rpm -q/–query

Utilisations simples :

  • rpm -q package : renvoie $nom-$version-$release
  • rpm -qi package : affiche une page d'information sur le package
  • rpm -ql package : affiche la liste des fichiers du package
  • rpm -qf fichier : affiche le package propriétaire du fichier
  • rpm -q –scripts package : affiche les scripts pré et post-installation du paquet
  • rpm -q –requires package : affiche les dépendance du package
  • rpm -q –provides package : affiche ce que fournit le package
  • rpm -q –whatrequires /usr/bin/ogg123 : affiche les packages qui ont besoin de “/usr/bin/ogg123”
  • rpm -q –whatprovides /usr/bin/ogg123 : affiche le package qui fournit “/usr/bin/ogg123”
  • rpm -q –changelog package : affiche l'historique des modifications du package
  • rpm -qa : renvoie la liste de tous les packages installés. utilise souvent avec un grep : rpm -qa | grep -i rpm
  • rpm -qa –last : pour trier par date d'installation
  • rpm -qp fichier_rpm : interroge un fichier plutôt que la base, par exemple pour connaître ses dépendances : rpm -qpR fichier_rpm

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 :

  • récupérer la liste ordonnée par taille des packages installés :
rpm -qa --queryformat "%{SIZE} %{NAME} %{VERSION}\n" | sort -n
  • recuperer la liste ordonnée par date des packages installés :
rpm -qa --queryformat "%{INSTALLTIME:date} %{NAME} %{VERSION}\n" | sort -n
  • pour plus d'informations sur les queryformat :
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.

distributions_rpm/introduction_a_rpm.txt · Dernière modification : 2010/01/15 17:04 de root