20 ejemplos prácticos de comandos RPM en Linux

RPM (Red Hat Package Manager) es una utilidad de gestión de paquetes de código abierto y ampliamente utilizada para sistemas basados en Red Hat como CentOS, Fedora, Rocky y Alma Linux.

La herramienta de gestión de paquetes rpm permite a los administradores del sistema y a los usuarios instalar, actualizar, desinstalar, consultar, verificar y gestionar paquetes de software en sistemas operativos Unix/Linux, que anteriormente se conocían como archivos .rpm, contienen programas de software compilados y bibliotecas requeridas por los paquetes.

Este artículo proporciona 20 ejemplos útiles de comandos RPM que pueden ser útiles para ti. Con la ayuda de estos comandos RPM, puedes gestionar la instalación, actualización y eliminación de paquetes en tus sistemas Linux.

Datos sobre RPM

Aquí hay algunos datos sobre RPM (Red Hat Package Manager):

  • RPM está disponible de forma gratuita y se publica bajo la Licencia Pública General (GPL).
  • RPM mantiene una base de datos de todos los paquetes instalados, almacenando esta información en el directorio /var/lib/rpm.
  • RPM sirve como el método principal para instalar paquetes en sistemas Linux. Si los paquetes se han instalado utilizando código fuente, RPM no los administra.
  • RPM opera con archivos .rpm, que contienen información vital del paquete como su identidad, origen, dependencias, detalles de versión y más.

Modos Básicos para el Comando RPM

Aquí están los modos principales para el comando RPM:

  • Instalar – El comando rpm -i instala un nuevo paquete en el sistema.
  • Actualizar – El comando rpm -U actualiza un paquete existente a una versión más nueva.
  • Eliminar – El comando rpm -e desinstala o elimina un paquete del sistema.
  • Consulta – El comando rpm -q consulta la base de datos RPM para obtener información sobre los paquetes instalados.
  • Verificar – El comando rpm -V verifica la integridad de los archivos de paquete instalados.
  • Actualizar Parcialmente – El comando rpm -F actualiza o instala un paquete solo si ya está instalado.
  • Reconstruir Base de Datos – El comando rpm --rebuilddb reconstruye la base de datos RPM, resolviendo problemas de corrupción de la base de datos.
  • Importar Clave GPG – El comando rpm --import importa una clave GPG utilizada para la verificación de firmas de paquetes.
  • Consulta Todos – El comando rpm -qa lista todos los paquetes instalados en el sistema.
  • Consulta Archivos – El comando rpm -ql lista todos los archivos instalados por un paquete específico.
  • Consulta Documentación – El comando rpm -qd lista los archivos de documentación proporcionados por un paquete.
  • Consulta Dependencias – El comando rpm -qR lista las dependencias en tiempo de ejecución de un paquete.
  • Consulta Proporciona – El comando rpm -q --provides enumera las capacidades proporcionadas por un paquete.
  • Consulta Requiere – El comando rpm -q --requires enumera las dependencias requeridas por un paquete.

Dónde encontrar paquetes RPM

Puedes encontrar paquetes RPM en varios lugares, dependiendo de tu distribución de Linux. Aquí hay ubicaciones comunes donde puedes encontrar y descargar todos los paquetes RPM.

Recuerda que debes ser un root usuario al instalar paquetes en Linux, con los privilegios de root puedes gestionar comandos rpm con sus opciones apropiadas.

1. Cómo Verificar la Firma del Paquete RPM

Siempre verifica la firma PGP de los paquetes antes de instalarlos en tus sistemas Linux y asegúrate de que su integridad y origen sean OK.

Usa el siguiente comando con la opción --checksig (verificar firma) para verificar la firma de un paquete llamado hardinfo.

rpm --checksig hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm: digests OK

2. Cómo Instalar un Paquete RPM

Para instalar un paquete de software RPM, utiliza el siguiente comando con la opción -ivh, que instalará el paquete rpm llamado hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm en un sistema Linux.

rpm -ivh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:hardinfo-2.0.11-1                ################################# [100%]

Analicemos los componentes del comando anterior:

  • -i : instalar un paquete
  • -v : verboso para una mejor visualización
  • -h: imprimir marcas de hash (#) para mostrar el progreso de la instalación.

3. Cómo verificar las dependencias del paquete RPM antes de instalar

Supongamos que desea realizar una verificación de dependencias antes de instalar o actualizar un paquete. Por ejemplo, use el siguiente comando para verificar las dependencias del paquete hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm.

El comando consulta y muestra las dependencias de tiempo de ejecución requeridas por el paquete ” hardinfo “, lo que ayuda a identificar e asegurar que todas las dependencias necesarias se cumplan antes de instalar el paquete.

rpm -qpR hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm
 
libX11.so.6()(64bit)
libatk-1.0.so.0()(64bit)
libc.so.6()(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libcairo-gobject.so.2()(64bit)
libcairo.so.2()(64bit)
...

Analicemos los componentes del comando anterior:

  • -q : Consultar un paquete.
  • -p : Listar las capacidades que este paquete proporciona.
  • -R : Listar las capacidades en las que este paquete depende.

4. Cómo instalar el paquete RPM sin dependencias

Para instalar un paquete rpm sin dependencias, puede usar la opción --nodeps, que instalará forzadamente un paquete RPM sin verificar o resolver las dependencias.

rpm -ivh --nodeps hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

El comando anterior instala forzadamente el paquete rpm ignorando los errores de dependencias, pero si esos archivos de dependencia están faltando, entonces el programa no funcionará en absoluto hasta que los instale.

5. Cómo verificar el paquete RPM instalado

Para verificar un paquete rpm instalado, puede usar la opción -q, que consultará y mostrará información sobre la versión instalada del paquete.

rpm -q hardinfo

hardinfo-2.0.11-1.x86_64

6. Cómo encontrar dónde se instalan los archivos RPM

Para ver todos los archivos de un paquete rpm instalado, use el -ql (query list) con el comando rpm.

rpm -ql hardinfo

/usr/bin/hardinfo2
/usr/lib/.build-id
/usr/lib/.build-id/3a
/usr/lib/.build-id/53
/usr/lib/.build-id/7c
/usr/lib/.build-id/ba
/usr/lib/.build-id/e0
/usr/lib64/hardinfo2
/usr/lib64/hardinfo2/modules
/usr/lib64/hardinfo2/modules/benchmark.so
/usr/lib64/hardinfo2/modules/computer.so
/usr/lib64/hardinfo2/modules/devices.so
/usr/lib64/hardinfo2/modules/network.so
...

7. ¿Cómo listar los paquetes RPM instalados recientemente?

Utilice el siguiente comando rpm con -qa (query all) opción, que listará todos los paquetes rpm instalados recientemente.

rpm -qa --last


hardinfo-2.0.11-1.x86_64                      Mon 04 Mar 2024 01:32:14 PM IST
pipewire-pulseaudio-1.0.3-1.fc39.x86_64       Mon 04 Mar 2024 01:32:02 PM IST
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64 Mon 04 Mar 2024 01:32:02 PM IST
pipewire-alsa-1.0.3-1.fc39.x86_64             Mon 04 Mar 2024 01:32:02 PM IST
libsoup-devel-2.74.3-3.fc39.x86_64            Mon 04 Mar 2024 01:32:02 PM IST
json-glib-devel-1.8.0-1.fc39.x86_64           Mon 04 Mar 2024 01:32:02 PM IST
gtk3-devel-3.24.41-1.fc39.x86_64              Mon 04 Mar 2024 01:32:02 PM IST
xdg-desktop-portal-gtk-1.15.1-1.fc39.x86_64   Mon 04 Mar 2024 01:32:01 PM IST
xdg-desktop-portal-1.18.2-1.fc39.x86_64       Mon 04 Mar 2024 01:32:01 PM IST
libcanberra-gtk3-0.30-32.fc39.x86_64          Mon 04 Mar 2024 01:32:01 PM IST
gtk3-3.24.41-1.fc39.x86_64                    Mon 04 Mar 2024 01:32:01 PM IST
...

8. ¿Cómo listar todos los paquetes RPM instalados?

Escriba el siguiente comando para imprimir todos los nombres de paquetes instalados en su sistema Linux.

rpm -qa

fonts-filesystem-2.0.5-12.fc39.noarch
libreport-filesystem-2.17.11-3.fc39.noarch
hunspell-filesystem-1.7.2-5.fc39.x86_64
abattis-cantarell-vf-fonts-0.301-10.fc39.noarch
fedora-gpg-keys-39-1.noarch
fedora-repos-39-1.noarch
setup-2.14.4-1.fc39.noarch
filesystem-3.18-6.fc39.x86_64
basesystem-11-18.fc39.noarch
default-fonts-core-sans-4.0-9.fc39.noarch
langpacks-fonts-en-4.0-9.fc39.noarch
...

9. ¿Cómo actualizar un paquete RPM?

Si queremos actualizar cualquier paquete RPM, se utilizará la opción “–U” (upgrade). Una de las principales ventajas de usar esta opción es que no solo actualizará la versión más reciente de cualquier paquete, sino que también mantendrá la copia de seguridad del paquete anterior para que, en caso de que el paquete actualizado no funcione, se pueda utilizar nuevamente el paquete previamente instalado.

rpm -Uvh hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm

10. ¿Cómo eliminar un paquete RPM?

Para desinstalar un paquete RPM, por ejemplo, usamos el nombre del paquete hardinfo, no el nombre original del paquete hardinfo-2.0.11-FedoraLinux-39.x86_64.rpm. La opción -e (erase) se utiliza para eliminar el paquete.

rpm -evv hardinfo

11. ¿Cómo eliminar un paquete RPM sin dependencias?

La opción --nodeps (no verifique las dependencias) elimina forzosamente el paquete rpm del sistema. Pero tenga en cuenta que eliminar un paquete en particular puede romper otras aplicaciones que funcionan.

rpm -ev --nodeps hardinfo

12. ¿Cómo encontrar el paquete RPM de un archivo específico?

Tengamos en cuenta que tienes una lista de archivos y te gustaría saber a qué paquete pertenecen estos archivos. Por ejemplo, el siguiente comando con la opción -qf (consulta de archivo) te mostrará un archivo /usr/bin/htpasswd que pertenece al paquete httpd-tools-2.4.58-1.fc39.x86_64.

rpm -qf /usr/bin/htpasswd

httpd-tools-2.4.58-1.fc39.x86_64

13. Cómo Consultar Información de un Paquete RPM Instalado

Supongamos que has instalado un paquete rpm y quieres conocer la información sobre el paquete. La siguiente opción -qi (consulta de información) imprimirá la información disponible del paquete instalado.

rpm -qi hardinfo

Name        : hardinfo
Version     : 2.0.11
Release     : 1
Architecture: x86_64
Install Date: Mon 04 Mar 2024 01:32:14 PM IST
Group       : unknown
Size        : 5174404
License     : GPL2+
Signature   : (none)
Source RPM  : hardinfo-2.0.11-1.src.rpm
Build Date  : Sat 02 Mar 2024 06:37:42 AM IST
Build Host  : fedora.bigbear.dk
Relocations : /usr 
Vendor      : Humanity
URL         : https://www.hardinfo2.org
Summary     : hardinfo2 built using CMake
Description :
Hardinfo2 is a small application that displays information about your hardware and operating system.  It has online benchmarking to check your machine performance against other machines.

14. Obtener la Información de un Paquete RPM Antes de Instalarlo

Has descargado un paquete de internet y deseas conocer la información de un paquete antes de instalarlo. Por ejemplo, la siguiente opción -qip (consulta de información del paquete) imprimirá la información de un paquete sqlbuddy.

rpm -qip sqlbuddy

Name        : sqlbuddy                     Relocations: (not relocatable)
Version     : 1.3.3                        Vendor: (none)
Release     : 1                            Build Date: Wed 02 Nov 2011 11:01:21 PM BDT
Install Date: (not installed)              Build Host: rpm.bar.baz
Group       : Applications/Internet        Source RPM: sqlbuddy-1.3.3-1.src.rpm
Size        : 1155804                      License: MIT
Signature   : (none)
Packager    : Erik M Jacobs
URL         : http://www.sqlbuddy.com/
Summary     : SQL Buddy â Web based MySQL administration
Description : SQLBuddy is a PHP script that allows for web-based MySQL administration.

15. Cómo Consultar la Documentación de un Paquete RPM Instalado

Para obtener la lista de documentación disponible de un paquete instalado, utiliza el siguiente comando con la opción -qdf (consulta de archivo de documento) para mostrar las páginas del manual relacionadas con el paquete vmstat.

rpm -qdf /usr/bin/vmstat

/usr/share/doc/procps-ng/AUTHORS
/usr/share/doc/procps-ng/FAQ
/usr/share/doc/procps-ng/NEWS
/usr/share/doc/procps-ng/README.md
/usr/share/doc/procps-ng/bugs.md
/usr/share/man/man1/free.1.gz
/usr/share/man/man1/pgrep.1.gz
...

16. Cómo Verificar un Paquete RPM

Verificar un paquete compara la información de los archivos instalados del paquete con la base de datos de rpm. El -Vp (verificar paquete) se utiliza para verificar un paquete.

rpm -Vp sqlbuddy-1.3.3-1.noarch.rpm

S.5....T.  c /etc/httpd/conf.d/sqlbuddy.conf

17. Cómo verificar todos los paquetes RPM

Escriba el siguiente comando para verificar todos los paquetes rpm instalados.

rpm -Va

S.5....T.  c /etc/rc.d/rc.local
.......T.  c /etc/dnsmasq.conf
.......T.    /etc/ld.so.conf.d/kernel-2.6.32-279.5.2.el6.i686.conf
S.5....T.  c /etc/yum.conf
S.5....T.  c /etc/yum.repos.d/epel.repo

18. Cómo importar una clave GPG RPM

Para verificar los paquetes de RHEL/CentOS/Fedora, debe importar la clave GPG. Para hacerlo, ejecute el siguiente comando. Importará la clave GPG de CentOS 8.

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-8

19. Cómo listar todas las claves GPG RPM importadas

Para imprimir todas las claves GPG importadas en su sistema, use el siguiente comando.

rpm -qa gpg-pubkey*

gpg-pubkey-0608b895-4bd22942
gpg-pubkey-7fac5991-4615767f
gpg-pubkey-0f2672c8-4cd950ee
gpg-pubkey-c105b9de-4e0fd3a3
gpg-pubkey-00f97f56-467e318a
gpg-pubkey-6b8d79e6-3f49313d
gpg-pubkey-849c449f-4cb9df30

20. Cómo Reconstruir una Base de Datos RPM Corrupta

A veces la base de datos rpm se corrompe y detiene toda la funcionalidad de rpm y otras aplicaciones en el sistema. Por lo tanto, en este momento necesitamos reconstruir la base de datos rpm y restaurarla con la ayuda del siguiente comando.

cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages

En conclusión, los comandos rpm presentados proporcionan una guía completa para gestionar eficientemente los paquetes de software en distribuciones Linux basadas en RHEL.

Source:
https://www.tecmint.com/20-practical-examples-of-rpm-commands-in-linux/