Comandes LinuxUtilidades linux

La comanda rpm a Linux: consultar paquets instal·lats



La comanda rpm gestiona els paquets .rpm de Red Hat Enterprise Linux, Fedora, Rocky Linux, AlmaLinux, CentOS Stream o openSUSE. Pot instal·lar i esborrar paquets, però on és insubstituïble és a l’hora de consultar: quins paquets tens, quina versió, quins fitxers instal·len, d’on surt un fitxer, què necessita cada paquet o quant ocupa. Aquesta fitxa se centra en les consultes; la fitxa general de la comanda rpm explica també com instal·lar, actualitzar i verificar.

Per instal·lar i actualitzar programes, avui es fa servir dnf (el successor de yum), que resol les dependències. Les consultes amb rpm no necessiten sudo.

Sintaxi

rpm -q [opcions] paquet...
rpm -qa [opcions] [patró]
rpm -qf fitxer...
rpm -qp [opcions] fitxer.rpm

Consultes més útils

ComandaQuè mostra
rpm -q paquetSi està instal·lat i quina versió
rpm -qaTots els paquets instal·lats
rpm -qa 'patró*'Els paquets instal·lats que coincideixen amb el patró
rpm -qi paquetInformació: versió, mida, llicència, data d’instal·lació, descripció
rpm -ql paquetTots els fitxers que instal·la
rpm -qc paquetNomés els fitxers de configuració
rpm -qd paquetNomés la documentació
rpm -qf /ruta/fitxerQuin paquet ha instal·lat aquest fitxer
rpm -qR paquetQuè necessita el paquet (dependències)
rpm -q --provides paquetQuè ofereix el paquet a altres paquets
rpm -q --whatrequires capacitatQuins paquets instal·lats necessiten aquesta capacitat
rpm -q --changelog paquetHistorial de canvis del paquet
rpm -q --scripts paquetEls scripts que s’executen en instal·lar-lo o esborrar-lo
rpm -qa --lastEls paquets ordenats per data d’instal·lació

Amb -p davant (-qpi, -qpl, -qpR…) consultes un fitxer .rpm que encara no has instal·lat.

Exemples

Està instal·lat? El codi de sortida també t’ho diu (0 si hi és, 1 si no), cosa útil als scripts:

$ rpm -q bash
bash-5.1.8-9.el9.aarch64

$ rpm -q nginx
package nginx is not installed

Quants paquets hi ha instal·lats:

$ rpm -qa | wc -l
148

D’on surt un fitxer:

$ rpm -qf /etc/hosts /etc/hostname
setup-2.13.7-10.el9.noarch
file /etc/hostname is not owned by any package

Què ofereix un paquet (fixa’t que bash també proporciona /bin/sh):

$ rpm -q --provides bash
/bin/bash
/bin/sh
bash = 5.1.8-9.el9
bash(aarch-64) = 5.1.8-9.el9
config(bash) = 5.1.8-9.el9

Els últims canvis d’un paquet (útil per saber si una actualització corregeix una vulnerabilitat):

$ rpm -q --changelog bash | head -3
* Tue Feb 13 2024 Siteshwar Vashisht <svashisht@redhat.com> - 5.1.8-9
- Fix a performance regression while using large number of environment variables
  Resolves: RHEL-20020

Format de sortida personalitzat: --qf

Amb --queryformat (o --qf) tries quins camps vols veure. Els noms dels camps (tags) es llisten amb rpm --querytags.

$ rpm -q --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}  %{INSTALLTIME:date}\n" bash
bash-5.1.8-9.el9.aarch64  Mon May 25 20:13:49 2026

Els cinc paquets que ocupen més espai, amb la mida en format llegible:

$ rpm -qa --qf "%{SIZE}\t%{NAME}\n" | sort -nr | head -5 | numfmt --to=iec --field=1
34M     python3-libs
27M     binutils
14M     util-linux
14M     glib2
9.4M    cracklib-dicts

D’on venen els paquets instal·lats (útil per detectar paquets de repositoris externs):

$ rpm -qa --qf "%{VENDOR}\n" | sort | uniq -c
      1 (none)
    147 Rocky Enterprise Software Foundation

El (none) correspon a la clau de signatura importada (gpg-pubkey), que la base de dades també compta com a paquet.

Les mateixes consultes amb dnf

dnf també consulta els paquets que encara no tens, als repositoris:

Amb rpm (només instal·lats)Amb dnf (també repositoris)
rpm -qi paquetdnf info paquet
rpm -qf /ruta/fitxerdnf provides /ruta/fitxer
rpm -ql paquetdnf repoquery -l paquet
rpm -q --whatrequires paquetdnf repoquery --installed --whatrequires paquet

Comandes relacionades