Cómo usar 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 sistemas operativos basados en RHEL/CentOS. Puede instalar, desinstalar, actualizar, consultar y verificar paquetes usando el comando RPM. Esta herramienta solo funciona con paquetes creados en formato .rpm. El comando RPM solo puede instalar el paquete especificado, no puede instalar las dependencias requeridas para ese paquete.
En este tutorial, le mostraremos cómo usar el administrador de paquetes RPM con algunos ejemplos. Si está buscando una guía sobre el nuevo administrador de paquetes RedHat DNF, eche un vistazo aquí: Administración de paquetes CentOS 8 con DNF en la línea de comandos
requisitos previos
- Un servidor que ejecuta CentOS, RHEL o Fedora.
- Una contraseña de root está configurada en su servidor.
Sintaxis básica
La sintaxis básica del comando RPM se muestra a continuación:
rpm [OPTION] [PACKAGENAME]
Puede enumerar todas las opciones disponibles con el comando RPM usando el siguiente comando:
rpm --help
Debería ver la siguiente pantalla:
Instalación, actualización y eliminación de paquetes con RPM
Antes de instalar cualquier paquete RPM, puede enumerar las dependencias de ese paquete con el siguiente comando:
rpm -qpR epel-release-latest-8.noarch.rpm
Producción:
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 puede obtener la información de ese paquete con el siguiente comando:
rpm -qip epel-release-latest-8.noarch.rpm
Producción:
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.
Puede instalar este paquete usando el siguiente comando:
rpm -ivh epel-release-latest-8.noarch.rpm
Producción:
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%]
Puede instalar cualquier paquete RPM sin dependencias usando el siguiente comando:
rpm -ivh --nodeps epel-release-latest-8.noarch.rpm
Para actualizar el paquete RPM instalado, ejecute el siguiente comando:
rpm -Uvh epel-release-latest-8.noarch.rpm
Producción:
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, ejecute el siguiente comando:
rpm -ev epel-release
Producción:
Preparing packages... epel-release-8-7.el8.noarch
Mostrar información del paquete con RPM
Para mostrar la información detallada de cualquier paquete, ejecute el siguiente comando:
rpm -ql epel-release
Producción:
/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
Puede encontrar los archivos de configuración de cualquier paquete con el siguiente comando:
rpm -qc httpd
Producción:
/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
Puede mostrar más información sobre cualquier paquete con el siguiente comando:
rpm -qi httpd
Producción:
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: Publicidad
NetworkManager-1.14.0-14.el8.x86_64 dhcp-client-4.3.6-30.el8.x86_64
Verificar paquete con RPM
Para verificar cualquier paquete antes de instalarlo, use el siguiente comando:
rpm -Vp epel-release-latest-8.noarch.rpm
Producción:
warning: epel-release-latest-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Para verificar todos los paquetes rpm instalados, ejecute el siguiente comando:
rpm -Va
Producción:
.......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
Verifique 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, ejecute el siguiente comando:
rpm -q epel-release
Si el paquete especificado está instalado, debería ver el siguiente resultado:
epel-release-8-7.el8.noarch
Para verificar el paquete que no está instalado, ejecute el siguiente comando:
rpm -q mysql-server
Deberías obtener el siguiente resultado:
package mysql-server is not installed
Para enumerar todos los paquetes que están instalados en su sistema, ejecute el siguiente comando:
rpm -qa
Producción:
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 enumerar todos los paquetes instalados por nombre y tamaño, ejecute el siguiente comando:
rpm -qa --queryformat '%{name} %{size}\n'
Producción:
dos2unix 682042 platform-python-pip 7746190 geolite2-country 3424334 symlinks 19682 python3-six 100282 fontpackages-filesystem 0 rootfiles 599
Buscar página manual de cualquier paquete con RPM
Puede ejecutar lo siguiente para conocer la lista de documentación de un paquete que posee un archivo o carpeta.
rpm -qdf /etc/NetworkManager/
Producción:
/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, aprendimos cómo administrar paquetes con RPM en el sistema operativo CentOS 8. Espero que esto te ayude a realizar las tareas del día a día.