Linux / Commande rpm : interroger les paquets et vérifier leurs fichiers

rpm consulte les paquets installés, examine des fichiers .rpm et compare les fichiers installés aux métadonnées enregistrées. -q interroge la base locale ; -qp interroge une archive de paquet. Pour installer un logiciel en résolvant les dépendances disponibles dans les dépôts, utilisez généralement DNF plutôt qu’une installation directe avec rpm.

Interroger un paquet installé et choisir la sortie

Ces commandes concernent un système utilisant RPM Package Manager, notamment dans les familles Fedora et RHEL. Vérifiez cat /etc/os-release, rpm --version et man rpm : les options et politiques de vérification dépendent de la version de la distribution.

rpm -q [OPTIONS_DE_SELECTION] [OPTIONS_D_INFORMATION] PAQUET
rpm -qp [OPTIONS_D_INFORMATION] FICHIER.rpm
rpm -q bash
rpm -qi bash
rpm -ql bash

-q recherche bash dans la base des paquets installés ; -i, associé à -q, affiche les informations et la description ; -l affiche les chemins du paquet. Attention au contexte : rpm -i sans le mode -q signifie une installation, pas une simple demande d’information.

Les commandes de consultation ne nécessitent généralement pas de privilèges administrateur. Si bash n’est pas enregistré, attendez un diagnostic et un code non nul, pas une version vide interprétée comme un succès. Les résultats de version et d’architecture sont ceux de votre machine, pas une valeur universelle.

Pour ne demander que le nom enregistré, avec une sortie explicitement choisie :

rpm -q --qf '%{NAME}\n' bash

Sur un système où le paquet bash est installé, le résultat attendu de ce format est :

bash

Les apostrophes protègent la chaîne destinée à RPM. Vous pouvez inclure version, révision et architecture lorsque ces différences comptent :

rpm -q --qf '%{NAME}\t%{VERSION}-%{RELEASE}\t%{ARCH}\n' bash

La sortie comporte alors des champs séparés par des tabulations. Plusieurs installations correspondant à la sélection peuvent donner plusieurs lignes ; ne supposez pas toujours un résultat unique. Le manuel des formats de requête RPM décrit les balises et les caractères d’échappement.

Rechercher le propriétaire d’un chemin

Lisez d’abord rpm -ql bash et choisissez un chemin réellement présent dans cette liste. Si votre résultat comporte /usr/bin/bash, la recherche s’écrit :

rpm -qf /usr/bin/bash

-f sélectionne le paquet propriétaire du fichier pour la requête. /bin et /usr/bin peuvent être organisés différemment selon la distribution : partez du chemin observé au lieu de considérer tous les alias comme un même nom enregistré.

Une liste de chemins décrit les informations du paquet ; elle n’est pas un examen de tous les fichiers créés ensuite par les utilisateurs ou l’application. Un fichier absent de la base peut avoir été installé manuellement ou généré à l’exécution. À l’inverse, un chemin listé peut avoir changé depuis l’installation. Utilisez la vérification de fichiers pour examiner cette autre question.

Examiner un fichier RPM avant installation

Dans les commandes suivantes, example.rpm désigne un fichier déjà obtenu auprès d’un fournisseur fiable et adapté à votre système. Remplacez ce nom par le chemin réel ; aucune archive particulière n’est fournie avec cet exemple.

rpm -qpi ./example.rpm
rpm -qpl ./example.rpm
rpm -qpR ./example.rpm
rpm -qp --scripts ./example.rpm

-p fait porter la sélection sur le fichier .rpm plutôt que sur un paquet installé. Les lignes montrent respectivement ses informations, ses chemins, les capacités requises et ses scripts propres. Lire des scripts ne les exécute pas ; ce n’est toutefois pas un audit exhaustif de tout le code ou de tous les déclencheurs possibles.

La liste des dépendances ne les télécharge ni ne garantit qu’elles sont satisfaites. Lisez le nom, la version, l’architecture et les conditions du fournisseur avant installation. Un paquet peut contenir des scripts exécutés avec des droits élevés lors de ses opérations.

rpmkeys --checksig ./example.rpm

rpmkeys vérifie les condensats et signatures du paquet selon les clés disponibles et la politique de RPM. Un condensat valide seul ne prouve pas l’origine ; une signature ne peut être interprétée correctement qu’avec la bonne clé obtenue par une voie fiable. Si la clé manque ou qu’un contrôle échoue, examinez la cause plutôt que d’importer une clé trouvée au hasard ou d’ignorer la vérification.

Dans RPM 6, la documentation recommande l’outil spécialisé rpmkeys ; les formes historiques rpm -K sont des alias de compatibilité. Consultez le manuel rpmkeys et de contrôle des signatures. Une signature valide identifie une provenance par rapport à une clé, sans garantir que le logiciel est sans défaut ou adapté à votre usage.

Interpréter la vérification des fichiers installés

-V compare les fichiers du paquet aux métadonnées de la base. Pour cet examen des fichiers de bash sans exécuter un éventuel script de vérification du paquet :

rpm -V --noscripts bash

--noscripts limite ici la vérification en omettant ce script ; la commande ne constitue donc pas une validation de ses effets. Les comparaisons portent notamment sur taille, contenu, mode, propriétaire et date. Les droits de lecture peuvent empêcher certains contrôles : un résultat incomplet ne doit pas être assimilé à une correspondance.

Le format décrit par RPM utilise neuf positions pour les résultats, un éventuel attribut du fichier, puis le chemin. Voici une ligne fictive pour apprendre à lire les positions, et non un résultat obtenu sur un système :

..5....T. c /etc/example.conf

Dans cet exemple, le condensat du contenu et la date de modification diffèrent ; c indique un fichier de configuration. Le caractère 5 est le marqueur historique du contrôle de condensat : il ne faut pas en conclure que toutes les versions et tous les paquets utilisent MD5.

Marqueur Sens
. Le contrôle de cette position correspond.
? Le contrôle n’a pas pu être effectué.
S Taille différente.
M Mode différent, incluant type ou permissions.
5 Condensat du contenu différent.
U / G Propriétaire utilisateur ou groupe différent.
T Date de modification différente.
L / D / P Cible de lien, numéros de périphérique ou capacités différents.

Une différence sur une configuration peut venir d’un changement administratif voulu. Une absence de différence signalée ne prouve pas que toute la machine est saine : les vérifications dépendent du périmètre, de l’accès et de la base utilisée comme référence. Examinez le fichier, son rôle et l’historique avant de conclure à une intrusion ou de rétablir aveuglément une ancienne version.

Le manuel officiel rpm détaille les modes et les marqueurs. Pour l’installation et les mises à niveau avec résolution des dépendances, suivez le guide DNF 4 et DNF5. N’utilisez pas des options de force ou d’ignorance des dépendances pour transformer un échec en installation apparemment réussie.