Autor: Joel Barrios Dueñas
Correo electrónico: darkshram en gmail punto com
Sitio de Red: https://www.alcancelibre.org
Licencia Creative Commons
© 1999-2026 Joel Barrios Dueñas. Este manual se distribuye bajo la licencia Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0). Usted es libre de compartir y adaptar el material bajo los siguientes términos: debe dar crédito al autor, no puede utilizarlo para fines comerciales y debe compartir las obras derivadas bajo la misma licencia. La licencia completa está disponible en https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode.es.
El gestor de paquetes rpm constituye una herramienta fundamental para la administración de sistemas basados en GNU/Linux. Comprender su funcionamiento permite gestionar el equipamiento lógico de manera eficiente, segura y confiable, habilidades esenciales tanto para administradores de sistemas como para usuarios avanzados. A continuación, se explican sus fundamentos y procedimientos de uso más comunes.
RPM (RPM Package Manager, anteriormente conocido como Red Hat Package Manager) es un sistema de gestión de paquetes de equipamiento lógico para GNU/Linux y está considerado en la Base Estándar para Linux (Linux Standard Base o LSB). Este proyecto tiene el objetivo de desarrollar y promover estándares para mejorar la compatibilidad entre las distribuciones de GNU/Linux y permitir a las aplicaciones ser utilizadas en cualquier distribución.
RPM fue originalmente desarrollado por Red Hat, Inc. para su distribución de GNU/Linux y ha sido adoptado por muchas otras distribuciones y sistemas operativos.
RPM utiliza una base de datos que se almacena dentro del directorio /var/lib/rpm, la cual contiene toda la metainformación de los paquetes instalados en el sistema. Esta base de datos permite dar seguimiento a todos los componentes instalados, lo que facilita la instalación y desinstalación limpia de aplicaciones, programas, bibliotecas compartidas, etc., además de gestionar sus dependencias de manera eficiente.
⚠️ NOTA IMPORTANTE: El paquete
rpmes un componente fundamental del sistema y se instala de manera obligatoria en ALDOS, AlmaLinux, Fedora™, Red Hat™ Enterprise Linux, Rocky Linux y sus derivadas. Desinstalar este paquete comprometería por completo la capacidad del sistema para gestionar su propio equipamiento lógico, una acción que carece de sentido incluso para pruebas de concepto pedagógicas.
A continuación se presentan los procedimientos más comunes para gestionar paquetes con la herramienta rpm.
Existen escenarios donde la base de datos de RPM puede corromperse ―como por un sector dañado en la unidad de almacenamiento principal. Si el daño en el sistema de archivos lo permite, la base de datos se puede reconstruir ejecutando el siguiente mandato:
rpm --rebuilddb
⚠️ ADVERTENCIA: Ejecute este mandato sólo cuando sea estrictamente necesario. El procedimiento puede durar varios minutos y consumir una cantidad significativa de recursos del sistema. Reserve este procedimiento exclusivamente para situaciones donde exista evidencia clara e inequívoca de corrupción en la base de datos. Su ejecución preventiva o innecesaria, especialmente en sistemas estables, dista de ser una práctica recomendada y podría, en el peor de los casos, agravar un problema existente si el proceso se ve interrumpido.
Ejecute rpm con la opción -q para hacer una consulta ―query en inglés― en la base de datos por un nombre de paquete en particular. En el siguiente ejemplo se consulta si está instalado el paquete coreutils:
rpm -q coreutils
Lo anterior debe devolver una salida similar a la siguiente:
coreutils-8.32-39.el9.x86_64
Para consultar información detallada de un paquete, utilice las opciones -qi (query information). En este ejemplo se consulta el paquete coreutils:
rpm -qi coreutils
La salida será similar a esta:
Name : coreutils Version : 8.32 Release : 39.el9 Architecture: x86_64 Install Date: Mon Aug 4 21:39:39 2025 Group : Unspecified Size : 5986602 License : GPLv3+ Signature : RSA/SHA256, Thu Mar 13 20:01:43 2025, Key ID d36cb86cb86b3716 Source RPM : coreutils-8.32-39.el9.src.rpm Build Date : Wed Mar 12 06:50:36 2025 Build Host : x64-builder01.almalinux.org Packager : AlmaLinux Packaging Team <packager@almalinux.org> Vendor : AlmaLinux URL : https://www.gnu.org/software/coreutils/ Summary : A set of basic GNU tools commonly used in shell scripts Description : These are the GNU core utilities. This package is the combination of the old GNU fileutils, sh-utils, and textutils packages.
Para listar los archivos que componen un paquete instalado, utilice las opciones -ql (query list). El siguiente ejemplo lista los archivos del paquete coreutils:
rpm -ql coreutils
La salida será muy extensa, mostrando todos los archivos instalados por el paquete.
Para conocer a qué paquete pertenece un archivo específico en el sistema, use las opciones -qf (query file). Este ejemplo consulta el archivo /usr/bin/cp:
rpm -qf /usr/bin/cp
La salida será similar a:
coreutils-8.32-39.el9.x86_64
Para listar todos los paquetes instalados en el sistema, utilice las opciones -qa (query all):
rpm -qa
Dado que la lista es muy extensa, se recomienda usar un paginador como less:
rpm -qa | less
Para buscar paquetes específicos, combine rpm -qa con grep. Este ejemplo busca todos los paquetes instalados cuyo nombre contenga la cadena utils:
rpm -qa | grep utils
Para ver los paquetes ordenados cronológicamente (de más reciente a más antiguo), agregue la opción --last:
rpm -qa --last | less
Para verificar si los archivos instalados por un paquete han sido modificados, alterados o eliminados, ejecute rpm con la opción -V. Este mandato compara las sumas de verificación (MD5) y otros atributos de los archivos con los registros de la base de datos. En el siguiente ejemplo se verifica el paquete audit-libs:
rpm -V audit-libs
Si ningún archivo ha sido modificado, el mandato sólo devolverá el símbolo del sistema (prompt).
Ahora, modifique deliberadamente un archivo de este paquete para ver el cambio:
touch /etc/libaudit.conf
Vuelva a ejecutar la verificación:
rpm -V audit-libs
La salida indicará que el archivo /etc/libaudit.conf ha sido modificado:
.......T. c /etc/libaudit.conf
Para verificar todos los paquetes instalados en el sistema, utilice las opciones -Va:
rpm -Va
Este mandato puede generar una salida extensa en sistemas con mucho tiempo de uso, mostrando todos los archivos que difieren de su estado original de instalación.
Los distribuidores serios de equipamiento lógico en formato RPM utilizan firmas digitales PGP/GnuPG para garantizar la autenticidad e integridad de sus paquetes. Esto impide que paquetes alterados o dañados sean instalados inadvertidamente.
Las claves públicas de los almacenes de software suelen estar disponibles en línea. Para importar la clave de firma de Alcance Libre, ejecute:
rpm --import http://mirror0.alcancelibre.org/AL-RPM-KEY
Descargue un paquete de ejemplo, jailkit, distribuido por Alcance Libre:
wget http://mirror0.alcancelibre.org/server/9/x86_64/jailkit-2.23-2.el9.x86_64.rpm
Antes de instalarlo, es crucial verificar su firma digital e integridad con la opción -K:
rpm -K jailkit-2.23-2.el9.x86_64.rpm
Si el paquete es válido y está firmado con una clave importada en el sistema, la salida será:
jailkit-2.23-2.el9.x86_64.rpm: digests SIGNATURES OK
Si el paquete está corrupto o la firma es inválida, se mostrará un error.
Puede consultar la información de un paquete .rpm descargado con las opciones -qpi (query package information):
rpm -qpi jailkit-2.23-2.el9.x86_64.rpm
Para listar los archivos que el paquete instalará, use las opciones -qpl (query package list):
rpm -qpl jailkit-2.23-2.el9.x86_64.rpm
Para consultar las dependencias que requiere el paquete, utilice -qp --requires:
rpm -qp --requires jailkit-2.23-2.el9.x86_64.rpm
Para instalar un paquete, use las opciones -ivh (install, verbose, hash), que muestran un progreso detallado:
rpm -ivh jailkit-2.23-2.el9.x86_64.rpm
Si el paquete ya está instalado, rpm informará del error. Si faltan dependencias, mostrará un listado de éstas. Para instalar el paquete y resolver automáticamente sus dependencias desde los almacenes de software configurados, utilice dnf (o yum en ALDOS):
dnf -y localinstall jailkit-2.23-2.el9.x86_64.rpm
Para instalar o actualizar un paquete a una versión más reciente, utilice las opciones -Uvh (update, verbose, hash):
rpm -Uvh jailkit-2.23-2.el9.x86_64.rpm
Para reinstalar forzosamente un paquete (útil para restaurar archivos de configuración por defecto), agregue la opción --force a -ivh:
rpm -ivh --force jailkit-2.23-2.el9.x86_64.rpm
Algunos paquetes incluyen guiones (scripts) que se ejecutan antes o después de la instalación. Para omitir la ejecución de estos guiones, añada la opción --noscripts:
rpm -Uvh --noscripts jailkit-2.23-2.el9.x86_64.rpm
A partir de la versión 4.12 de rpm, se introdujo soporte para dependencias suaves, similares a los campos Recommends y Suggests en otros gestores de paquetes. Estas dependencias indican paquetes recomendados u opcionales que mejoran la funcionalidad del software principal, pero que no son estrictamente necesarios para su funcionamiento básico.
Para consultar estas dependencias en un paquete .rpm (con rpm >= 4.12), puede utilizar:
rpm -qp --recommends nombre-del-paquete.rpm rpm -qp --suggests nombre-del-paquete.rpm
Nota importante: La distribución ALDOS utiliza actualmente
rpmversión 4.11.3, la cual dista de ser compatible con estas opciones. Esta información se incluye a modo de referencia para futuras actualizaciones o para su uso en otras distribuciones modernas como AlmaLinux 9/10, Rocky Linux 9/10 o RHEL 9/10, que sí pueden incluir versiones derpmcon este soporte.
Si se modifican los permisos de archivos pertenecientes a un paquete RPM, es posible restaurarlos a sus valores originales registrados en la base de datos. El siguiente ejemplo demuestra el proceso con el archivo /usr/bin/cp:
Primero, observe sus permisos actuales:
ls -l /usr/bin/cp
Cambie los permisos del archivo:
chmod 700 /usr/bin/cp
Verifique el cambio:
ls -l /usr/bin/cp
Confirme a qué paquete pertenece el archivo:
rpm -qf /usr/bin/cp
Finalmente, restaure los permisos originales de todos los archivos de ese paquete usando la opción --setperms:
rpm --setperms coreutils
Verifique que los permisos se hayan restaurado:
ls -l /usr/bin/cp
Para desinstalar un paquete, utilice la opción -e (erase). En el siguiente ejemplo se desinstala wget:
rpm -e wget
Si la operación es exitosa, sólo se devolverá el símbolo del sistema.
Si el paquete es requerido por otros paquetes instalados, rpm mostrará una lista de dependencias que lo impiden. Por ejemplo, intentar desinstalar python3 fallará espectacularmente:
rpm -e python3
🚨 NOTA: Por razones obvias, el paquete
python3jamás debe desinstalarse en un sistema productivo, pues es una dependencia crítica de numerosas herramientas del sistema.
Para desinstalar un paquete ignorando las dependencias que tiene sobre él ―una práctica altamente desaconsejada que puede romper el sistema―, utilice la opción --nodeps:
rpm -e --nodeps nombre-del-paquete
Evite siempre desinstalar paquetes que sean dependencia de otros, a menos que planee reinstalar inmediatamente un sustituto que cubra las mismas funcionalidades.