Tutoriales

20 comandos DNF básicos para la gestión de paquetes en Linux

la mayoría de la gente trata dnf como reemplazo directo yum Entonces detente ahí. Pero esto ignora muchas cosas que vale la pena aprender sobre DNF; resolución automática de dependencias, historial de transacciones con soporte completo para deshacer, transmisión de módulos y un sistema de complementos más allá de lo que proporciona yum.

No abandonar (Danhua Yum) Ha sido el administrador de paquetes preestablecido en Fedora desde Fedora 22 (2015) y en RHEL desde RHEL 8 (2019). Está disponible para RHEL 8/9/10, Rocky Linux, AlmaLinux, CentOS Stream y Fedora. Si todavía estás escribiendo yum En cualquiera de estos sistemas, generalmente está vinculado o tiene un alias a DNF.

Una diferencia importante en 2025/2026 es DNF5. DNF5 Es una reescritura completa de DNF en C++, ahora el administrador de paquetes predeterminado para DNF fedora41 y versiones posteriores, incluida la versión actual de Fedora 44.

En Fedora 41+, /usr/bin/dnf es un enlace simbólico /usr/bin/dnf5 Por motivos de compatibilidad con versiones anteriores, los comandos de este artículo siguen siendo válidos. Sin embargo, si está utilizando Fedora 41 o superior, escriba dnf5 Recomendaciones claras.

En el lado empresarial, RHEL 9, Rocky Linux 9, AlmaLinux 9 y RHEL 10 todavía usan DNF (dnf4) como administrador de paquetes predeterminado. DNF5 aún no ha reemplazado a DNF en estos sistemas.

Todos los ejemplos siguientes se probaron en RHEL 9, Rocky Linux 9 y Fedora 44. La sección dedicada a DNF5 al final de este artículo describe los cambios en Fedora 41+.

Requisitos previos: Necesita un sistema RHEL 8/9/10, Rocky Linux, AlmaLinux o Fedora que funcione. La mayoría de los comandos requieren privilegios sudo o root; los comandos no se comentan en consecuencia.

Boletín semanal de TechMint

conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

1. Paquete de instalación

sudo dnf install nginx

DNF resuelve e instala automáticamente todas las dependencias necesarias. También puedes instalar varios paquetes usando un solo comando:

sudo dnf install git curl wget vim

Para omitir el mensaje de confirmación, use -y. Esto es especialmente útil en scripts:

sudo dnf install -y nginx

2. Eliminar paquete

sudo dnf remove nginx

Esto elimina el paquete pero no elimina automáticamente todas sus dependencias. Si también desea eliminar paquetes instalados como dependencias y que ya no son necesarios, utilice autoremove Al contrario (ver Ejemplo 8).

Si has estado escribiendo yum Por costumbre, compártelo. DNF Tiene características que hacen que la administración de la suite sea realmente más rápida.

3. Actualizar un solo paquete

sudo dnf update nginx

En DNF, las actualizaciones y las mejoras son equivalentes. Ambos actualizan paquetes y manejan paquetes obsoletos, por lo que no existe una diferencia real entre los dos comandos.

4. Actualice todos los paquetes

sudo dnf update

Esto actualizará todos los paquetes instalados a las últimas versiones disponibles en los repositorios habilitados. Antes de realizar cualquier cambio, puede comprobar si hay actualizaciones disponibles:

sudo dnf check-update

check-update devolver código de salida 100 Cuando hay una actualización disponible y 0 Cuando el sistema esté actualizado. Esto lo hace útil en scripts y trabajos cron.

5. Paquete de búsqueda

dnf search nginx

Para buscar un nombre de paquete y una descripción de paquete, use:

dnf search all nginx

Los resultados incluyen el nombre de la suite, la arquitectura y un breve resumen. no necesitas sudo Se utiliza para búsquedas de paquetes.

6. Obtenga información del paquete

dnf info nginx

Esto muestra detalles como versión, lanzamiento, arquitectura, tamaño de instalación, repositorio de origen, resumen y descripción sin instalar el paquete.

Para ver información sobre los paquetes instalados:

dnf info --installed nginx

7. Listar los paquetes de software instalados

dnf list --installed

Para verificar si un paquete específico está instalado, use el siguiente comando para filtrar la salida comando grep:

dnf list --installed | grep nginx

Listar los paquetes disponibles en los repositorios habilitados (ya estén instalados o no):

dnf list --available

Sepa que los administradores del sistema todavía están usando rpm -qa | grep ¿Verificar paquetes instalados? comparte esto dnf list --installed Mucho más limpio.

8. Eliminar las dependencias no utilizadas

A medida que los paquetes se instalan y eliminan con el tiempo, es posible que algunas dependencias ya no sean necesarias. DNF puede identificar y eliminar estos paquetes huérfanos autoremove:

sudo dnf autoremove

Ejecútelo regularmente para mantener su sistema limpio. DNF solo elimina paquetes que están instalados como dependencias y que ya no son necesarios para ningún paquete instalado.

9. Limpiar caché DNF

DNF almacena metadatos de paquetes y RPM descargados en /var/cache/dnf. Si el repositorio devuelve datos obsoletos o tiene poco espacio en disco, puede borrar el caché:

sudo dnf clean all

Para limpiar solo los metadatos conservando el paquete descargado:

sudo dnf clean metadata

Después de limpiar los metadatos, siguiente paso comando dnf Descargue nuevos metadatos de todos los repositorios habilitados.

¿Aprender comandos de Linux desde cero? este Más de 100 cursos de instrucción básica de Linux Pro TecMint cubre la gestión de paquetes, el procesamiento de archivos, el control de procesos y más de 90 comandos más, cada uno de los cuales se explica con resultados reales y ejercicios prácticos.

10. Ver registros de transacciones

DNF mantiene un registro de las transacciones de instalaciones, actualizaciones y eliminaciones de paquetes de software. Consulte las ofertas recientes:

dnf history

Es posible que vea el siguiente resultado:

ID     | Command line                        | Date and time    | Action(s) | Altered
-------+-------------------------------------+------------------+-----------+--------
    12 | install nginx                       | 2026-08-14 09:31 | Install   |      3
    11 | update                              | 2026-08-12 14:05 | Upgrade   |     47
    10 | remove vim-enhanced                 | 2026-08-10 11:22 | Removed   |      1

Cada transacción tiene una identificación única que puedes usar para verificar qué sucedió. Por ejemplo:

dnf history info 12

Esto muestra los paquetes afectados por la transacción 12 junto con otros detalles de la transacción.

11. Reversión de transacción

Una de las características más útiles de DNF es la capacidad de revertir transacciones anteriores utilizando su ID.

Por ejemplo:

sudo dnf history undo 12

DNF intenta revertir la transacción 12. Si la transacción instaló tres paquetes, estos paquetes se eliminarán. Si se actualiza un paquete, DNF intentará restaurar la versión anterior.

También puedes rehacer transacciones previamente deshechas:

sudo dnf history redo 12

El comando dnf History deshacer puede ser un salvavidas cuando los cambios de suite causan problemas inesperados. Comparte este mensaje para que tu equipo sepa que existe.

12. Degradar paquetes de software

Si hay problemas con una versión más reciente del paquete, puede degradarlo a una versión anterior disponible:

sudo dnf downgrade nginx

DNF selecciona la versión más alta disponible que sea anterior a la versión instalada actualmente.

Para instalar una versión específica, especifique la versión completa del paquete:

sudo dnf install nginx-1.24.0-1.el9.x86_64

13.Instale archivos RPM locales

Si descargó el archivo RPM manualmente, puede hacerlo pasando su ruta directamente a dnf install. a diferencia de rpm -iDNF puede resolver e instalar dependencias faltantes de sus repositorios configurados:

sudo dnf install /tmp/package.rpm

14. Listar y gestionar repositorios

Enumere todos los repositorios habilitados y su estado:

dnf repolist

Para ver repositorios habilitados y deshabilitados:

dnf repolist --all

Puede habilitar o deshabilitar un repositorio para un solo comando usando --enablerepo y --disablerepo:

sudo dnf install --enablerepo=crb curl
sudo dnf update --disablerepo=epel

Para habilitar o deshabilitar permanentemente un repositorio:

sudo dnf config-manager --enable crb
sudo dnf config-manager --disable epel
¿Está ejecutando RHEL 9 o Rocky Linux en producción? este Curso de Certificación RHCSA Pro TecMint cubre todo, desde DNF, gestión de repositorios, SELinux, almacenamiento y el examen EX200 actualizado para RHEL 10

15. Agregar nuevo repositorio

Para agregar un nuevo repositorio usando su URL:

sudo dnf config-manager --add-repo 

Los perfiles del repositorio se almacenan en /etc/yum.repos.d/. Después de agregar el repositorio, verifique que aparezca en la lista de repositorios:

dnf repolist

16. Instalar el grupo de paquetes de software

DNF admite grupos de paquetes, que son colecciones de paquetes relacionados que se pueden instalar juntos. Para ver los grupos disponibles:

dnf group list

Para instalar un grupo:

sudo dnf group install "Development Tools"

Para eliminar un grupo:

sudo dnf group remove "Development Tools"

17. Utilice el flujo de mod

notas:Modstream está disponible para RHEL 8/9, Rocky Linux y AlmaLinux. Fedora se demoduló en Fedora 39, por lo que en Fedora 40 y superiores puede instalar versiones de paquetes específicas directamente desde el repositorio o utilizar un repositorio de terceros.

En RHEL 9 y Rocky Linux 9, el módulo DNF le permite utilizar diferentes versiones de paquetes; por ejemplo, Node.js 18 o Node.js 20, sin necesidad de crear un nuevo repositorio de terceros:

# List available module streams
dnf module list nodejs

# Enable a specific stream
sudo dnf module enable nodejs:20

# Install the module
sudo dnf module install nodejs:20

Para cambiar a una transmisión diferente:

sudo dnf module reset nodejs
sudo dnf module enable nodejs:22
sudo dnf module install nodejs:22

En RHEL 10, las transmisiones mod continúan siendo compatibles con un conjunto actualizado de transmisiones disponibles. correr dnf module list Vea el directorio actual en su sistema.

18. Encuentre qué paquete proporciona un archivo

Cuando falta un comando y necesita averiguar qué paquete lo proporciona, utilice dnf provides:

dnf provides /usr/bin/netstat
dnf provides */netstat

Por ejemplo, el resultado podría verse así:

net-tools-2.0-0.62.20160912git.el9.x86_64 : Basic networking tools
Repo        : baseos
Matched from:
Filename    : /usr/bin/netstat

Esto te dice, net-tools Paquetes disponibles /usr/bin/netstat.

19. Reinstale los paquetes de software

Si los archivos de un paquete están dañados o se eliminan accidentalmente, puede reinstalar el paquete sin cambiar su versión:

sudo dnf reinstall nginx

DNF descarga y reinstala la versión actualmente registrada como instalada.

20. Verifique y verifique los paquetes de software instalados.

Para comprobar si hay dependencias rotas entre los paquetes de software instalados:

sudo dnf check

Para verificar la integridad de los archivos instalados para un paquete específico con la base de datos RPM, use:

rpm -V nginx

Si todo está bien, este comando no producirá ningún resultado. Si ve alguna línea, significa que el archivo es diferente del paquete original. Esto puede ayudar a identificar archivos dañados o modificados accidentalmente.

¿Algún compañero ha migrado de Ubuntu a RHEL? Compartir este DNF es una de las primeras cosas a las que deben adaptarse.

DNF, YUM y DNF5: principales diferencias

característicaYum marcasMazmorra y luchador (dnf4)Luchador de mazmorra 5
idiomaPitónPitónC++
Resolución de dependenciaSolucionador personalizado (propenso a errores)libsolv (preciso)libsolv (apresúrate)
APIindocumentadoregistro completoregistro completo
Soporte de complementosSólo pitónPitón+CPitón + C + C++
Historial de transacciones y reversionesNo
flujo de modificaciónNoSí (RHEL/Rocky)Conceptos básicos (RHEL/Rocky)
Dependencias de PythonNo
Uso de memoriaaltomediobajo
Predeterminado deRHEL 6/7RHEL 8, Fedora 22Fedora 41+
estado actualEnlace simbólico DNFValores predeterminados en RHEL 8/9/10Configuración predeterminada en Fedora 41+

DNF5 en Fedora 41 y superior

Luchador de mazmorra 5 Es una reescritura completa de DNF en C++. Elimina la dependencia de Python, procesa metadatos más rápido, utiliza menos memoria y proporciona una interfaz de línea de comandos más limpia y consistente.

DNF5 se convirtió en el administrador de paquetes preestablecido en Fedora 41, lanzado en octubre de 2024, y seguirá siendo el administrador de paquetes preestablecido en versiones posteriores, incluido Fedora 44. En Fedora 41 y superiores, /usr/bin/dnf señalar a /usr/bin/dnf5por lo que los comandos de este artículo siguen funcionando como se esperaba. Sin embargo, se recomienda utilizar dnf5 explícitamente en el futuro.

La mayoría de los comandos en DNF y DNF5 son iguales. Aquí están las diferencias que vale la pena conocer.

Instalar, eliminar y actualizar: misma sintaxis básica

sudo dnf5 install nginx
sudo dnf5 remove nginx
sudo dnf5 upgrade
sudo dnf5 upgrade nginx

Con DNF5, upgrade Este es el comando preferido para actualizar paquetes de software. update Todavía se puede usar como alias, pero actualizar es el comando canónico.

Búsqueda y Noticias: misma sintaxis

dnf5 search nginx
dnf5 info nginx

Gestión de repositorios: indicadores ligeramente diferentes

DNF5 incluye config-manager Como subcomando integrado, no necesita un complemento por separado.

Agregar nuevo repositorio:

sudo dnf5 config-manager addrepo --from-repofile=

Para habilitar o deshabilitar un repositorio:

sudo dnf5 config-manager setopt epel.enabled=1
sudo dnf5 config-manager setopt epel.enabled=0

Limpiar caché

Para eliminar metadatos y paquetes almacenados en caché:

sudo dnf5 clean all

Propósito DNF5 check-upgrade como comando preferido en lugar de buscar actualizaciones. más viejo check-update Los comandos todavía se pueden utilizar como alias.

DNF5 nada todavía

Modflow en DNF5 en Fedora solo proporciona soporte básico. Fedora eliminó la modificación en Fedora 39, por lo que generalmente esto no tiene nada que ver con las versiones actuales de Fedora.

En RHEL y Rocky Linux, DNF4 sigue siendo el valor predeterminado y proporciona soporte completo de transmisión de módulos. DNF5 aún no es la configuración predeterminada en RHEL 9, RHEL 10, Rocky Linux o AlmaLinux, así que utilice el estándar dnf comandos en estos sistemas.

referencia rápida

Ordenque hace
dnf install pkginstalar un paquete
dnf remove pkgEliminar un paquete
dnf updateActualizar todos los paquetes
dnf check-updateLista de actualizaciones disponibles (sin cambios)
dnf search pkgBuscar por nombre
dnf info pkgMostrar detalles del paquete
dnf list --installedListar paquetes instalados
dnf autoremoveEliminar dependencias no utilizadas
dnf clean allborrar caché
dnf historyVer historial de transacciones
dnf history undo NTransacción de reversión N
dnf downgrade pkgBajar a la versión anterior
dnf provides */fileEncuentre qué paquete posee un archivo
dnf repolist --allListar todos los repositorios
dnf group install "name"Instalar grupo de paquetes
dnf module listLista de transmisiones mod disponibles (solo RHEL/Rocky)
dnf reinstall pkgReinstalar sin cambiar de versión
dnf checkVerificar dependencias rotas
dnf5 upgradeActualizar todos los paquetes (Fedora 41+)
dnf5 check-upgradeBuscar actualizaciones sin aplicarlas (Fedora 41+)
dnf5 history undo NTransacción de reversión N (Fedora 41+)
en conclusión

DNF No solo un sustituto yum. Le brinda una mejor resolución de dependencias, historial de transacciones, reversión de paquetes, administración de repositorios, grupos de paquetes y herramientas para buscar y solucionar problemas de paquetes.

Para RHEL, Rocky Linux, AlmaLinux y CentOS Stream, la familiaridad con dnf es una parte importante de la gestión de sistemas modernos basados ​​en RPM. Si está utilizando Fedora 41 o superior, también deberá estar familiarizado con DNF5 y sus comandos más nuevos.

Una vez que comprenda estos comandos, la administración diaria de paquetes será más simple, segura y fácil de solucionar problemas, ya sea que esté instalando un único paquete de software o manteniendo un servidor Linux de producción.

¿Cuál es la primera tarea DNF que cree que ha automatizado en un servidor de producción? ¿Cuál es la única tarea que siempre ejecutas manualmente? Ponlo en los comentarios, el comando es simple, pero es importante saber dónde trazar la línea.

Si este artículo fue útil, Con alguien de tu equipo.

Boletín semanal de TechMint

conseguir Aprenda el curso intensivo de 7 días de Linux Únase a más de 34.000 profesionales de Linux que leen gratis todos los jueves.

Revise su correo electrónico para ver el enlace mágico para comenzar.

Algo salió mal. Por favor inténtalo de nuevo.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba