dnf

Guía de DNF: Gestor de Paquetes en Fedora/RHEL/CentOS Stream

Introducción

DNF (Dandified YUM) es el gestor de paquetes moderno en distribuciones basadas en RPM como Fedora, RHEL y CentOS Stream. Reemplazó a YUM y ofrece mayor velocidad y manejo de dependencias.

Historia de DNF: El Sucesor de YUM

DNF (Dandified YUM) surgió en 2012 como un proyecto liderado por Red Hat para reemplazar a YUM (Yellowdog Updater Modified), el gestor de paquetes clásico de distribuciones RPM. Su desarrollo se basó en librerías modernas como libsolv (para resolución de dependencias) y hawkey (una API en Python), diseñadas para abordar las limitaciones de YUM:

  • Lentitud: YUM usaba algoritmos ineficientes para resolver dependencias complejas.
  • Código legacy: Su base (escrita en Python) era difícil de mantener y optimizar.
  • Falta de características avanzadas: Como soporte para transacciones atómicas o integración con sistemas de metadata modernos.

En 2015, DNF se convirtió en el gestor predeterminado de Fedora 22, y posteriormente fue adoptado por RHEL 8+ y CentOS Stream. Su nombre «Dandified» (algo así como «elegante» o «mejorado») refleja su objetivo: ofrecer una experiencia más pulida y eficiente que YUM.

dnf

¿Por qué se planteó DNF?

La creación de DNF respondió a problemas técnicos críticos en la gestión de paquetes RPM:

  1. Resolución de dependencias insostenible:
    • YUM usaba un algoritmo «glotón» (greedy) que, aunque simple, era lento y propenso a errores en sistemas con miles de paquetes.
    • DNF integra libsolv, un resolvedor de dependencias basado en SAT (teoría de satisfacibilidad booleana), que es exponencialmente más rápido y preciso.
  2. Arquitectura modular:
    • YUM era monolítico, mientras que DNF se diseñó como un conjunto de librerías reutilizables (ej: libdnf), facilitando su integración con otras herramientas (como PackageKit).
  3. Soporte para tecnologías emergentes:
    • DNF incluyó desde el inicio compatibilidad con delta RPMs (descarga solo de diferencias para ahorrar ancho de banda) y módulos (colecciones de paquetes versionados, clave para RHEL 8+).
  4. Mantenimiento a largo plazo:
    • Red Hat buscaba un sistema que pudiera escalar para entornos empresariales (como Cloud y contenedores), donde YUM ya no era viable.

Comandos Básicos

ComandoDescripción
sudo dnf updateActualiza todos los paquetes del sistema.
sudo dnf install <paquete>Instala un paquete.
sudo dnf remove <paquete>Elimina un paquete.
dnf search <palabra>Busca paquetes en los repositorios.
dnf info <paquete>Muestra detalles de un paquete.

Gestión de Repositorios

  • Listar repositorios: dnf repolist
  • Añadir un repositorio (ej: EPEL): sudo dnf install epel-release
  • Habilitar/Deshabilitar repos: sudo dnf config-manager –set-enabled <repo-id> sudo dnf config-manager –set-disabled <repo-id>

Limpieza y Optimización

  • Borrar caché: sudo dnf clean all
  • Autoremove: Elimina paquetes huérfanos: sudo dnf autoremove

Ejemplos Prácticos

  • Instalar Nginx: sudo dnf install nginx sudo systemctl start nginx
  • Actualizar un paquete específico: sudo dnf update httpd

Interfaces Gráficas para DNF

GNOME Software (Fedora/RHEL)

  • Descripción: La opción más común en Fedora Workstation. Es una tienda de aplicaciones estilo «app store» que usa DNF como backend.
  • Funciones:
    • Instalar/eliminar paquetes.
    • Actualizar el sistema.
    • Gestión de repositorios (básica).
  • Acceso: Preinstalado en GNOME (búscalo como «Software» en el menú).
  • Limitaciones: No expone todas las funciones avanzadas de DNF (ej: limpieza de caché o gestión de módulos).

KDE Discover (Plasma)

  • Descripción: El equivalente a GNOME Software para entornos KDE.
  • Funciones:
    • Similar a GNOME Software, pero con integración de Flatpak y Snap.
  • Requisitos: Instalarlo en Fedora KDE con:bash
  • sudo dnf install discover

dnfdragora (Multi-distribución)

  • Descripción: Un frontend gráfico independiente para DNF/YUM, escrito en Python (GTK3).
  • Características:
    • Soporte para transacciones (instalar/actualizar/eliminar).
    • Gestión de repositorios.
    • Historial de operaciones.
  • Instalación:bash
  • sudo dnf install dnfdragora
dnfdragora

Cockpit (Web UI)

  • Descripción: Panel de administración web para servidores (incluye gestión de paquetes).
  • Funciones:
    • Actualizaciones de paquetes.
    • Instalación básica (no muestra todo el catálogo).
  • Instalación:bash
  • sudo dnf install cockpit sudo systemctl enable –now cockpit.socket
  • Acceso: https://tuserver:9090.

¿Por qué no son tan populares?

  1. Enfoque en CLI: Los usuarios avanzados de Fedora/RHEL suelen preferir dnf por su velocidad y flexibilidad.
  2. Alternativas modernas: Muchos usuarios optan por Flatpak/Snap para aplicaciones de escritorio (usando GNOME Software o Discover).
  3. DNF es ya «amigable»: Comparado con YUM, DNF tiene mensajes de error más claros y progreso detallado, reduciendo la necesidad de GUIs.

No dejes de leer nuestras otras guías sobre gestores de paquetes para tu distribución de Linux en nuestro blog.