Outils pour utilisateurs

Outils du site


distributions_rpm:introduction_a_rpm

Ceci est une ancienne révision du document !


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 –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

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.1237075813.txt.gz · Dernière modification : 2009/03/15 00:10 de root