Rpm

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Fiche express
Domaine Gestion des paquets RPM
Commande rpm
Contexte RHEL/CentOS/Fedora (et AIX, port réduit) — outil bas niveau, utilisé directement ou via yum/dnf
Voir aussi Yum (frontend avec gestion des dépendances)

rpm est l'outil bas niveau de gestion des paquets .rpm : il interroge, installe, met à jour ou désinstalle des paquets, et vérifie l'intégrité des fichiers déjà installés. Il fonctionne sans réseau et sans résolution de dépendances — c'est le rôle de yum (ou dnf) qui s'appuie dessus pour gérer les dépôts et les dépendances.

Interroger les paquets installés

rpm -qa                                    # liste tous les paquets installés
rpm -qa --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" | grep iscsi-initiator-utils

rpm -qi httpd                              # infos détaillées sur un paquet installé
rpm -ql httpd                              # fichiers installés par ce paquet
rpm -qf /usr/bin/ksh                       # quel paquet possède ce fichier ?
rpm -qc httpd                              # fichiers de configuration du paquet
rpm -qd httpd                              # fichiers de documentation du paquet

Interroger un fichier .rpm non installé

Les mêmes requêtes fonctionnent sur une archive .rpm pas encore installée, en ajoutant -p :

rpm -qilp setserial-2.17-691.rpm           # infos + liste des fichiers du paquet
rpm --scripts -qp cell-11.2.3.2.1_LINUX.X64_130109-1.x86_64.rpm   # scripts pre/post install

Installer, mettre à jour, désinstaller

rpm -ivh paquet.rpm      # install (verbose, hash progress)
rpm -Uvh paquet.rpm      # upgrade (installe même si absent)
rpm -F *.rpm             # freshen : ne met à jour que les paquets déjà installés
rpm -e paquet            # efface (désinstalle)

⚠️ rpm n'installe pas les dépendances : en cas de dépendance manquante, l'opération échoue. Utiliser yum (ou dnf) pour une installation avec résolution automatique des dépendances depuis un dépôt.

Options courantes

  • -aall, tous les paquets installés
  • -iinfo, infos sur le paquet
  • -llist, liste les fichiers contenus dans le paquet
  • -ffile, paquet d'origine du fichier donné en argument
  • -p — cible un fichier .rpm donné en argument (pas la base installée)
  • -qquery, mode interrogation (se combine avec les options ci-dessus)
  • -R — liste les dépendances du paquet
  • -ddoc, fichiers de documentation
  • -cconfig, fichiers de configuration
  • -sstate, état des fichiers
  • -eerase, efface un paquet
  • --scripts — scripts exécutés à l'installation/désinstallation

Vérifier l'intégrité des fichiers installés

rpm --verify -a                            # vérifie tous les paquets installés
rpm --verify -p vsftpd-2.2.2-6.el6.i686.rpm
rpm --verify --file /bin/ls

Chaque ligne de sortie correspond à un fichier modifié depuis l'installation ; les lettres indiquent l'attribut qui diffère (un . signifie conforme) :

S  taille (size)
M  mode (permissions)
5  somme MD5
D  device
L  lien symbolique
U  utilisateur (owner)
G  groupe
T  date de modification (mtime)

Restaurer les permissions et propriétaires d'origine

Utile après une commande malheureuse du type chown -R mysql / qui a écrasé les propriétaires de tout le système :

for p in $(rpm -qa); do rpm --setugids "$p"; done   # restaure user:group d'origine
for p in $(rpm -qa); do rpm --setperms "$p"; done    # restaure les permissions d'origine

⚠️ Ne restaure que ce que le paquet RPM connaît (fichiers qu'il a lui-même installés) — les fichiers créés après coup ou modifiés hors paquet ne sont pas concernés.

Reconstruire un paquet depuis les sources

rpmbuild compile un .rpm binaire à partir d'un .src.rpm ou d'un fichier .spec — hors périmètre de cette fiche, qui couvre uniquement la gestion des paquets déjà packagés.

Spécificités AIX

Le port AIX de rpm ne dispose que d'un sous-ensemble réduit d'options (pas de --queryformat, pas de --verify détaillé) :

rpm -qa                # tous les paquets
rpm -q paquet           # un paquet donné
rpm -qf fichier         # paquet propriétaire du fichier
rpm -qi paquet          # infos détaillées
rpm -ql paquet          # fichiers du paquet
rpm -i paquet.rpm       # installer
rpm -e paquet           # effacer
rpm -V paquet           # vérifier

Voir aussi

  • Yum — frontend avec gestion des dépôts et des dépendances, basé sur rpm