Cómo utilizar el comando RPM (con ejemplos)

RPM significa «Redhat Package Manager» y es una herramienta de gestión de paquetes de línea de comandos para el sistema operativo basado en RHEL/CentOS. Puedes instalar, desinstalar, actualizar, consultar y verificar paquetes mediante el comando RPM. Esta herramienta sólo funciona con paquetes construidos en formato .rpm. El comando RPM sólo puede instalar el paquete especificado, no puede instalar las dependencias necesarias para ese paquete.

En este tutorial, te mostraremos cómo utilizar el gestor de paquetes RPM con algunos ejemplos. Si buscas una guía sobre el nuevo gestor de paquetes de RedHat, DNF, echa un vistazo aquí:Gestión de paquetesde CentOS8 con DNF en la línea de comandos

Requisitos previos

  • Un servidor que ejecute CentOS, RHEL o Fedora.
  • Una contraseña de root configurada en tu servidor.

Sintaxis básica

La sintaxis básica del comando RPM se muestra a continuación:

rpm [OPTION] [PACKAGENAME]

Puedes listar todas las opciones disponibles con el comando RPM utilizando el siguiente comando:

rpm --help

Deberías ver la siguiente pantalla:

Ayuda de RPM

Instalar, actualizar y eliminar paquetes con RPM

Antes de instalar cualquier paquete RPM, puedes listar las dependencias de ese paquete con el siguiente comando:

rpm -qpR epel-release-latest-8.noarch.rpm

Salida:

warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
config(epel-release) = 8-7.el8
redhat-release >= 8
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(PayloadIsXz) <= 5.2-1

También puedes obtener la información de ese paquete con el siguiente comando:

rpm -qip epel-release-latest-8.noarch.rpm

Salida:

warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Name        : epel-release
Version     : 8
Release     : 7.el8
Architecture: noarch
Install Date: (not installed)
Group       : System Environment/Base
Size        : 30269
License     : GPLv2
Signature   : RSA/SHA256, Thursday 10 October 2019 12:19:30 PM EDT, Key ID 21ea45ab2f86d6a1
Source RPM  : epel-release-8-7.el8.src.rpm
Build Date  : Thursday 10 October 2019 12:16:18 PM EDT
Build Host  : buildvm-04.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://download.fedoraproject.org/pub/epel
Bug URL     : https://bugz.fedoraproject.org/epel-release
Summary     : Extra Packages for Enterprise Linux repository configuration
Description :
This package contains the Extra Packages for Enterprise Linux (EPEL) repository
GPG key as well as configuration for yum.

Puedes instalar ese paquete con el siguiente comando:

rpm -ivh epel-release-latest-8.noarch.rpm

Salida:

warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:epel-release-8-7.el8             ################################# [100%]

Puedes instalar cualquier paquete RPM sin ninguna dependencia utilizando el siguiente comando:

rpm -ivh --nodeps epel-release-latest-8.noarch.rpm

Para actualizar el paquete RPM instalado, ejecuta el siguiente comando:

rpm -Uvh epel-release-latest-8.noarch.rpm

Salida:

warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
	package epel-release-8-7.el8.noarch is already installed

Para eliminar el paquete RPM instalado, ejecuta el siguiente comando:

rpm -ev epel-release

Salida:

Preparing packages...
epel-release-8-7.el8.noarch

Visualizar la información del paquete con RPM

Para mostrar la información detallada de cualquier paquete, ejecuta el siguiente comando:

rpm -ql epel-release

Salida:

/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
/etc/yum.repos.d/epel-playground.repo
/etc/yum.repos.d/epel-testing.repo
/etc/yum.repos.d/epel.repo
/usr/lib/systemd/system-preset/90-epel.preset
/usr/share/doc/epel-release
/usr/share/doc/epel-release/GPL
/usr/share/doc/epel-release/README-epel-8-packaging.md

Puedes encontrar los archivos de configuración de cualquier paquete con el siguiente comando

rpm -qc httpd

Salida:

/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf.modules.d/00-base.conf
/etc/httpd/conf.modules.d/00-dav.conf
/etc/httpd/conf.modules.d/00-lua.conf
/etc/httpd/conf.modules.d/00-mpm.conf
/etc/httpd/conf.modules.d/00-optional.conf
/etc/httpd/conf.modules.d/00-proxy.conf
/etc/httpd/conf.modules.d/00-systemd.conf
/etc/httpd/conf.modules.d/01-cgi.conf
/etc/httpd/conf/httpd.conf
/etc/httpd/conf/magic
/etc/logrotate.d/httpd
/etc/sysconfig/htcacheclean

Puedes mostrar más información sobre cualquier paquete con el siguiente comando:

rpm -qi httpd

Salida:

Name        : httpd
Version     : 2.4.37
Release     : 16.module_el8.1.0+256+ae790463
Architecture: x86_64
Install Date: Thursday 23 January 2020 11:48:36 PM EST
Group       : System Environment/Daemons
Size        : 5611291
License     : ASL 2.0
Signature   : RSA/SHA256, Monday 23 December 2019 05:22:02 PM EST, Key ID 05b555b38483c65d
Source RPM  : httpd-2.4.37-16.module_el8.1.0+256+ae790463.src.rpm
Build Date  : Monday 23 December 2019 03:46:30 PM EST
Build Host  : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys <[email protected]>
Vendor      : CentOS
URL         : https://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and extensible
web server.

Para encontrar el paquete desde el directorio o archivo con el siguiente comando

rpm -qf /etc/NetworkManager/

Salida:

NetworkManager-1.14.0-14.el8.x86_64
dhcp-client-4.3.6-30.el8.x86_64

Verificar el paquete con RPM

Para verificar cualquier paquete antes de instalarlo con el siguiente comando

rpm -Vp epel-release-latest-8.noarch.rpm

Salida:

warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY

Para verificar todos los paquetes rpm instalados, ejecuta el siguiente comando:

rpm -Va

Salida:

.......T.  c /etc/kdump.conf
.M.......  g /var/lib/plymouth/boot-duration
.M.......  g /var/cache/dnf/packages.db
.....UG..  g /var/lib/sss/mc/group
.....UG..  g /var/lib/sss/mc/initgroups
.....UG..  g /var/lib/sss/mc/passwd
.M.......  c /etc/rc.d/rc.local
.M.......  c /etc/machine-id

Comprobar la información sobre el paquete instalado con RPM

Para verificar cualquier paquete si está instalado o no con el siguiente comando

Para verificar el paquete instalado, ejecuta el siguiente comando:

rpm -q epel-release

Si el paquete especificado está instalado, deberías ver la siguiente salida:

epel-release-8-7.el8.noarch

Para verificar el paquete que no está instalado, ejecuta el siguiente comando:

rpm -q mysql-server

Deberías obtener la siguiente salida:

package mysql-server is not installed

Para listar todos los paquetes que están instalados en tu sistema, ejecuta el siguiente comando:

rpm -qa

Salida:

dos2unix-7.4.0-3.el8.x86_64
platform-python-pip-9.0.3-13.el8.noarch
geolite2-country-20180605-1.el8.noarch
symlinks-1.4-19.el8.x86_64
python3-six-1.11.0-8.el8.noarch
fontpackages-filesystem-1.44-22.el8.noarch
rootfiles-8.1-22.el8.noarch
polkit-0.115-6.el8.x86_64
xkeyboard-config-2.24-3.el8.noarch
iwl6050-firmware-41.28.5.1-92.el8.1.noarch
libmodulemd1-1.8.0-5.el8.x86_64
pkgconf-m4-1.4.2-1.el8.noarch
iwl5000-firmware-8.83.5.1_1-92.el8.1.noarch
samba-common-4.9.1-8.el8.noarch
kbd-misc-2.0.4-8.el8.noarch

Para listar todos los paquetes instalados por nombre y tamaño, ejecuta el siguiente comando:

rpm -qa --queryformat '%{name} %{size}\n'

Salida:

dos2unix 682042
platform-python-pip 7746190
geolite2-country 3424334
symlinks 19682
python3-six 100282
fontpackages-filesystem 0
rootfiles 599

Buscar la página manual de cualquier paquete con RPM

Puedes ejecutar lo siguiente para conocer la lista de documentación de un paquete que posee un archivo o carpeta.

rpm -qdf /etc/NetworkManager/

Salida:

/usr/share/doc/NetworkManager/AUTHORS
/usr/share/doc/NetworkManager/CONTRIBUTING
/usr/share/doc/NetworkManager/NEWS
/usr/share/doc/NetworkManager/README
/usr/share/doc/NetworkManager/TODO
/usr/share/doc/NetworkManager/examples/server.conf
/usr/share/man/man1/nm-online.1.gz
/usr/share/man/man1/nmcli.1.gz
/usr/share/man/man5/NetworkManager.conf.5.gz
/usr/share/man/man5/nm-settings-ifcfg-rh.5.gz
/usr/share/man/man5/nm-settings-keyfile.5.gz
/usr/share/man/man5/nm-settings.5.gz
/usr/share/man/man5/nm-system-settings.conf.5.gz
/usr/share/man/man7/nmcli-examples.7.gz
/usr/share/man/man8/NetworkManager.8.gz
/usr/share/doc/dhcp-client/README.dhclient.d
/usr/share/doc/dhcp-client/dhclient-enter-hooks
/usr/share/doc/dhcp-client/dhclient.conf.example
/usr/share/doc/dhcp-client/dhclient6.conf.example
/usr/share/man/man5/dhclient.conf.5.gz
/usr/share/man/man5/dhclient.leases.5.gz
/usr/share/man/man8/dhclient-script.8.gz
/usr/share/man/man8/dhclient.8.gz

Conclusión

En el tutorial anterior, hemos aprendido a gestionar paquetes con RPM en el sistema operativo CentOS 8. Espero que esto te ayude a realizar las tareas cotidianas.

También te podría gustar...