Hola Fronters 👋

Bienvenidos a la segunda entrega de nuestra serie sobre administración de paquetería en Linux. En el artículo anterior exploramos a fondo el ecosistema Debian/APT/dpkg. Hoy toca el turno del mundo Red Hat: RHEL, CentOS, Rocky Linux, AlmaLinux, Fedora y todas las distribuciones basadas en RPM.

Si trabajas en entornos empresariales, es muy probable que lidies con servidores RHEL o CentOS. Vamos a dominar YUM, DNF, RPM, y todo el ecosistema de repositorios que los rodea. ¡Arrancamos! 🚀

RPM: la base de todo

RPM (Red Hat Package Manager) es el gestor de paquetes de bajo nivel en el mundo Red Hat. Al igual que dpkg en Debian, RPM maneja archivos individuales .rpm sin resolver dependencias automáticamente.

# Instalar un paquete .rpm
sudo rpm -ivh paquete.rpm

# Eliminar un paquete
sudo rpm -e nombre-paquete

# Listar todos los paquetes instalados
rpm -qa

# Listar archivos que pertenecen a un paquete
rpm -ql nombre-paquete

# Averiguar qué paquete instaló un archivo
rpm -qf /etc/nginx/nginx.conf

# Verificar integridad de un paquete
rpm -V nombre-paquete

# Información detallada de un paquete
rpm -qi nombre-paquete

Las opciones de rpm:

  • -i: install
  • -v: verbose
  • -h: hash marks (progreso)
  • -e: erase (eliminar)
  • -q: query
  • -a: all
  • -l: list files
  • -f: file (buscar qué paquete posee un archivo)

YUM: Yellowdog Updater Modified

YUM fue durante años el gestor de alto nivel por defecto en RHEL, CentOS 7 y Fedora (hasta la versión 21). Resuelve dependencias automáticamente y trabaja con repositorios.

# Actualizar lista de paquetes
sudo yum check-update

# Instalar paquetes
sudo yum install nginx
sudo yum install nginx php-fpm mariadb-server

# Actualizar todos los paquetes
sudo yum update

# Actualizar un paquete específico
sudo yum update nginx

# Eliminar paquetes
sudo yum remove nginx

# Buscar paquetes
yum search servidor web
yum info nginx

# Listar grupos de paquetes
yum group list
yum group install "Web Server"

# Listar repositorios habilitados
yum repolist

# Ver historial de transacciones
yum history
yum history info 5

# Revertir una transacción
sudo yum history undo 5

DNF: Dandified YUM

DNF es el sucesor moderno de YUM, introducido por defecto en Fedora 22, RHEL 8 y CentOS 8. Es más rápido, tiene mejor manejo de dependencias y soporta plugins de forma nativa.

# Comandos equivalentes en DNF
sudo dnf check-update
sudo dnf install nginx
sudo dnf update
sudo dnf remove nginx
sudo dnf search nginx
sudo dnf info nginx
sudo dnf group list
sudo dnf group install "Web Server"
sudo dnf repolist
sudo dnf history

DNF tiene algunas ventajas sobre YUM:

  • Rendimiento: usa libsolv para resolver dependencias mucho más rápido
  • Integridad transaccional: mejor manejo de fallos durante la instalación
  • Soporte nativo de Python 3
  • Autocompletado de comandos (con el plugin bash-completion)
  • Mensajes de error más claros

Comandos DNF avanzados

# Listar paquetes disponibles
dnf list available

# Listar paquetes instalados
dnf list installed

# Mostrar dependencias de un paquete
dnf deplist nginx

# Descargar un paquete sin instalarlo
dnf download nginx

# Limpiar caché
sudo dnf clean all

# Reinstalar un paquete
sudo dnf reinstall nginx

# Hacer downgrade de un paquete
sudo dnf downgrade nginx

# Mostrar qué paquete provee un archivo/comando
dnf provides /usr/bin/nginx
dnf provides '*/nginx'

Repositorios adicionales esenciales

EPEL (Extra Packages for Enterprise Linux)

Mantenido por el proyecto Fedora, EPEL es el repositorio más importante para RHEL y derivados. Añade miles de paquetes que no están en los repositorios oficiales.

sudo dnf install epel-release
# o en versiones antiguas
sudo yum install epel-release

Remi

Mantenido por Remi Collet, ofrece versiones actualizadas de PHP, MySQL/MariaDB, y otras herramientas de desarrollo.

sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
sudo dnf module reset php
sudo dnf module enable php:remi-8.3
sudo dnf install php

RPM Fusion

Esencial para Fedora, proporciona paquetes que Red Hat no incluye por políticas de licencia o patentes (códecs multimedia, drivers NVIDIA, etc.).

sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm

Archivos .repo

Los repositorios en el mundo RHEL se configuran mediante archivos .repo en el directorio /etc/yum.repos.d/.

[epel]
name=Extra Packages for Enterprise Linux $releasever - $basearch
baseurl=http://download.fedoraproject.org/pub/epel/$releasever/Everything/$basearch
enabled=1
gpgcheck=1
gpgkey=https://download.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-$releasever

Puedes crear tus propios archivos .repo para repositorios locales o de terceros.

dnf-automatic: actualizaciones automáticas

Para mantener los servidores actualizados sin intervención manual, existe dnf-automatic:

sudo dnf install dnf-automatic
sudo systemctl enable --now dnf-automatic.timer

Configuración en /etc/dnf/automatic.conf:

[commands]
apply_updates = yes
download_updates = yes
emit_via = email

[email]
email_from = root@example.com
email_to = admin@example.com

Versionlock: mantener versiones específicas

A veces necesitas evitar que un paquete se actualice automáticamente (ej. en entornos de producción donde una versión específica ha sido probada).

# Con DNF
sudo dnf install python3-dnf-plugin-versionlock
sudo dnf versionlock add nginx-1.24*
sudo dnf versionlock list

# Con YUM
sudo yum install yum-plugin-versionlock
sudo yum versionlock add nginx-1.24*

Para eliminar el bloqueo:

sudo dnf versionlock delete nginx-1.24*
# o eliminar todos los bloqueos
sudo dnf versionlock clear

Migración de YUM a DNF

Si aún usas YUM (CentOS 7 o RHEL 7), ten en cuenta que:

  • YUM está en modo mantenimiento y no recibe nuevas funcionalidades
  • RHEL 8+ y CentOS 8+ usan DNF por defecto
  • El comando yum sigue existiendo en RHEL 8+ como un enlace simbólico a DNF para mantener compatibilidad
  • Los archivos de configuración y repositorios son compatibles entre ambos

Buenas prácticas

  • Siempre revisa los paquetes a actualizar con dnf check-update antes de aplicar cambios
  • Usa dnf history para auditar cambios y poder revertir si algo sale mal
  • Configura dnf-automatic solo para parches de seguridad en entornos de producción
  • Usa versionlock para paquetes críticos que no deben cambiar de versión sin aprobación
  • Habilitar EPEL es casi obligatorio en servidores RHEL/CentOS para tener acceso a paquetes adicionales
  • Prefiere DNF sobre YUM siempre que sea posible

Conclusión

El ecosistema RPM/YUM/DNF es sólido y maduro, especialmente en entornos empresariales. Dominarlo es clave para cualquier administrador de sistemas Linux que trabaje con servidores Red Hat.

En el próximo artículo de la serie, exploraremos la administración de paquetes en ArchLinux y derivados con Pacman y AUR. ¡No te lo pierdas!

Nos leemos en el próximo post. 🐧


📊 Infografía: DNF, YUM y RPM (RHEL/CentOS/Fedora)

Descarga nuestra infografía resumen con los comandos principales:

📥 Puedes descargar la infografía aquí

🔗 Infografía comparativa general — Descarga la comparativa de todos los gestores de paquetes.