Cómo utilizar los comandos RPM (con ejemplos)
RPM significa "Redhat Package Manager", que es una herramienta de administración de paquetes de línea de comandos para sistemas operativos basados en RHEL/CentOS. Puede utilizar comandos RPM para instalar, desinstalar, actualizar, consultar y verificar paquetes. Esta herramienta solo está disponible para paquetes creados en formato .rpm. El comando RPM solo puede instalar el paquete de software especificado, no las dependencias requeridas por el paquete de software.
En este tutorial, le mostraremos cómo utilizar el administrador de paquetes RPM con algunos ejemplos. Si está buscando una guía sobre el nuevo administrador de paquetes RedHat DNF, consulte aquí: Gestión de paquetes CentOS 8 con DNF en la línea de comando
requisitos previos
- Un servidor que ejecute CentOS, RHEL o Fedora.
- Se configura una contraseña de root en su servidor.
Gramática básica
La sintaxis básica del comando RPM es la siguiente:
rpm [OPTION] [PACKAGENAME]
Puede usar el siguiente comando para enumerar todas las opciones disponibles usando el comando RPM:
rpm --help
Deberías ver la siguiente pantalla:
Instalar, actualizar y eliminar paquetes usando RPM
Antes de instalar cualquier paquete RPM, puede utilizar el siguiente comando para enumerar las dependencias de ese paquete:
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 información sobre el paquete usando 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 : https://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 utilizar el siguiente comando para instalar cualquier paquete sin RPM:
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 los paquetes RPM instalados, ejecute el siguiente comando:
rpm -ev epel-release
Producción:
Preparing packages... epel-release-8-7.el8.noarch
Mostrar información del embalaje usando RPM
Para mostrar los detalles 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 el archivo de configuración de cualquier paquete usando 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 utilizar el siguiente comando para mostrar más información sobre cualquier paquete:
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.
Utilice el siguiente comando para buscar paquetes desde un directorio o archivo:
rpm -qf /etc/NetworkManager/
Producción:
NetworkManager-1.14.0-14.el8.x86_64 dhcp-client-4.3.6-30.el8.x86_64
Validar paquete de software usando RPM
Utilice el siguiente comando para verificar cualquier paquete antes de instalarlo:
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
Utilice RPM para verificar información sobre paquetes instalados
Utilice el siguiente comando para verificar que no haya ningún paquete instalado:
Para verificar los paquetes instalados, ejecute el siguiente comando:
rpm -q epel-release
Si el paquete especificado ya está instalado, debería ver el siguiente resultado:
epel-release-8-7.el8.noarch
Para verificar que los paquetes no estén instalados, ejecute el siguiente comando:
rpm -q mysql-server
Debería obtener el siguiente resultado:
package mysql-server is not installed
Para enumerar todos los paquetes 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
Encuentre páginas de manual para cualquier paquete usando RPM
Puede ejecutar el siguiente comando para ver la lista de documentos del paquete propietario del 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
en conclusión
En el tutorial anterior, aprendimos cómo utilizar el paquete de administración RPM en el sistema operativo CentOS 8. Espero que esto te ayude a realizar tus tareas diarias.