Rpm
| 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
-a— all, tous les paquets installés-i— info, infos sur le paquet-l— list, liste les fichiers contenus dans le paquet-f— file, paquet d'origine du fichier donné en argument-p— cible un fichier.rpmdonné en argument (pas la base installée)-q— query, mode interrogation (se combine avec les options ci-dessus)-R— liste les dépendances du paquet-d— doc, fichiers de documentation-c— config, fichiers de configuration-s— state, état des fichiers-e— erase, 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