27 comandos de ‘DNF’ (bifurcación de Yum) para la gestión de paquetes RPM en Linux

DNF, también conocido como Dandified YUM, es un Administrador de Paquetes de próxima generación para Distribuciones basadas en RPM. Fue introducido por primera vez en Fedora 18 y ha reemplazado la utilidad YUM en la versión reciente de Fedora 22.

DNF tiene como objetivo mejorar los cuellos de botella de YUM, es decir, rendimiento, uso de memoria, resolución de dependencias, velocidad y muchos otros factores. DNF gestiona paquetes utilizando RPM, libsolv y la biblioteca hawkey. Aunque no viene preinstalado en CentOS y RHEL 7, puedes instalarlo y utilizarlo junto con YUM.

Puedes leer más sobre DNF aquí:

  1. Razones detrás del reemplazo de Yum por DNF

La última versión estable de DNF es la 1.0 (en el momento de la redacción de esta publicación), que se lanzó el 11 de mayo de 2015. Está (y todas las versiones anteriores de DNF) mayormente escrita en Python y se publica bajo la Licencia GPL v2.

La instalación de DNF

DNF no está disponible en el repositorio predeterminado de RHEL/CentOS 7. Sin embargo, Fedora 22 incluye DNF de forma oficial.

Para instalar DNF en sistemas RHEL/CentOS, primero necesitas instalar y habilitar el repositorio epel-release.

# yum install epel-release
OR
# yum install epel-release -y

Aunque no es ético usar ‘-y‘ con yum ya que se recomienda ver qué se está instalando en tu sistema. Sin embargo, si esto no te importa mucho, puedes usar ‘-y’ con yum para instalar todo automáticamente sin intervención del usuario.

Luego, instala el paquete DNF usando el comando yum desde el repositorio epel-release.

# yum install dnf

Después de que dnf se instale correctamente, es hora de mostrarte 27 usos prácticos de comandos dnf con ejemplos que te ayudarán a gestionar paquetes en distribuciones basadas en RPM de manera fácil y efectiva.

1. Verificar la versión de DNF

Verifica la versión de DNF instalada en tu sistema.

# dnf --version

2. Listar Repositorios DNF Habilitados

La opción ‘repolist‘ con el comando dnf, mostrará todos los repositorios habilitados en tu sistema.

# dnf repolist

3. Listar todos los Repositorios DNF Habilitados y Deshabilitados

La opción ‘repolist all‘ imprimirá todos los repositorios habilitados/deshabilitados en tu sistema.

# dnf repolist all

4. Listar todos los Paquetes Disponibles e Instalados usando DNF

El comando “dnf list” listará todos los paquetes disponibles de todos los repositorios y los paquetes instalados en tu sistema Linux.

# dnf list

5. Listar todos los Paquetes Instalados usando DNF

Mientras que el comando “dnf list” muestra todos los paquetes disponibles/instalados de todos los repositorios. Sin embargo, tienes la opción de listar solo los paquetes instalados usando la opción “list installed” como se muestra a continuación.

# dnf list installed

6. Listar todos los paquetes disponibles usando DNF

De manera similar, la opción “list available” listará todos los paquetes disponibles para ser instalados de todos los repositorios habilitados.

# dnf list available

7. Buscar un paquete usando DNF

En caso de que no tengas idea sobre el paquete que deseas instalar, en tal situación puedes usar la opción ‘ search ‘ con el comando dnf para buscar el paquete que coincida con la palabra o cadena (digamos nano).

# dnf search nano

8. Ver qué proporciona un archivo/sub-paquete?

La opción dnf “provides” encuentra el nombre del paquete que proporciona un archivo/sub-paquete específico. Por ejemplo, ¿te gustaría saber qué proporciona ‘/bin/bash‘ en tu sistema?

# dnf provides /bin/bash

9. Obtener detalles de un paquete usando DNF

Supongamos que deseas conocer la información de un paquete antes de instalarlo en el sistema, puedes usar el interruptor ” info ” para obtener información detallada sobre un paquete (digamos nano) como se muestra a continuación.

# dnf info nano

10. Instalar un paquete con DNF

Para instalar un paquete llamado nano, simplemente ejecuta el siguiente comando que resolverá e instalará automáticamente todas las dependencias necesarias para el paquete nano.

# dnf install nano

11. Actualizar un paquete usando DNF

Puede actualizar solo un paquete específico (digamos systemd) y dejar todo en el sistema intacto.

# dnf update systemd

12. Verificar actualizaciones del sistema usando DNF

Verificar actualizaciones para todos los paquetes del sistema instalados simplemente como.

# dnf check-update

13. Actualizar todos los paquetes del sistema usando DNF

Puede actualizar todo el sistema, incluidos todos los paquetes instalados con los siguientes comandos.

# dnf update
OR
# dnf upgrade

14. Eliminar/Borrar un paquete usando DNF

Para eliminar cualquier paquete no deseado (digamos nano), puede usar el interruptor “remove” o “erase” con el comando dnf para eliminarlo.

# dnf remove nano
OR
# dnf erase nano

15. Eliminar paquetes huérfanos usando DNF

Esos paquetes que se instalaron para satisfacer dependencias pueden ser inútiles si no son utilizados por otras aplicaciones. Para eliminar esos paquetes huérfanos, ejecute el siguiente comando.

# dnf autoremove

16. Eliminar paquetes en caché usando DNF

A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.

# dnf clean all

17. Obtener ayuda sobre un comando DNF específico

Puede obtener ayuda de cualquier comando dnf específico (digamos clean) simplemente ejecutando el siguiente comando.

# dnf help clean

18. Listar todos los comandos y opciones de DNF

Para ver la ayuda sobre todos los comandos y opciones de dnf disponibles, simplemente escriba.

# dnf help

19. Ver historial de DNF

Puede llamar al historial de dnf para ver la lista de comandos dnf ya ejecutados. De esta manera, puede saber qué se instaló/eliminó con la marca de tiempo.

# dnf history

20. Listar todos los paquetes de grupo

El comando “dnf grouplist” imprimirá todos los paquetes disponibles o instalados, si no se menciona nada, listará todos los grupos conocidos.

# dnf grouplist

21. Instalar un paquete de grupo usando DNF

Para instalar un grupo de paquetes agrupados como paquete de grupo (digamos Software Educativo) simplemente como.

# dnf groupinstall 'Educational Software'

22. Actualizar un paquete de grupo

Vamos a actualizar un paquete de grupo (digamos Software Educativo) ejecutando el siguiente comando.

# dnf groupupdate 'Educational Software'

23. Eliminar un paquete de grupo

Podemos eliminar el paquete de grupo (digamos Software Educativo) como.

# dnf groupremove 'Educational Software'

24. Instalar un paquete de un repositorio específico

DNF hace posible instalar cualquier paquete específico (digamos phpmyadmin) de un repositorio (epel) simplemente como,

# dnf --enablerepo=epel install phpmyadmin

25. Sincronizar paquetes instalados con la versión estable

El comando “dnf distro-sync” proporcionará las opciones necesarias para sincronizar todos los paquetes instalados a la versión estable más reciente disponible de cualquier repositorio habilitado. Si no se selecciona ningún paquete, se sincronizarán todos los paquetes instalados.

# dnf distro-sync

26. Reinstalar un paquete

El comando “dnf reinstall nano” reinstalará un paquete ya instalado (digamos nano).

# dnf reinstall nano

27. Retroceder a una versión anterior de un paquete

La opción “downgrade” retrocederá el paquete indicado (digamos acpid) a una versión inferior si es posible.

# dnf downgrade acpid
Salida de ejemplo
Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.

Mi observación: DNF no ha degradado el paquete como se supone que debe hacerlo. También se ha reportado como un error.

Conclusión

DNF es el estado superior del gestor de paquetes YUM de última generación. Tiende a realizar mucho procesamiento automáticamente, lo cual no será alabado por muchos administradores de sistemas Linux experimentados, según creo. A modo de ejemplo:

  1. --skip-broken no es reconocido por DNF y no hay una alternativa.
  2. No existe un comando llamado ‘resolvedep‘, sin embargo, se puede ejecutar dnf provides.
  3. No hay un comando ‘deplist‘ para encontrar las dependencias del paquete.
  4. Si excluye un repositorio, la exclusión se aplica a todas las operaciones, a diferencia de yum, que excluye esos repositorios solo en el momento de la instalación y las actualizaciones, etc.

Varios usuarios de Linux no están contentos con la forma en que se está moviendo el ecosistema de Linux. Primero Systemd eliminó init system v y ahora DNF reemplazará a YUM pronto en Fedora 22 y más tarde en RHEL y CentOS.

¿Qué opinas? ¿Las distribuciones y todo el ecosistema de Linux no valoran a sus usuarios y se mueven en contra de su voluntad? También se dice frecuentemente en la industria de TI: “¿Por qué arreglar algo si no está roto?”, y tanto init System V como YUM no están rotos.

Eso es todo por ahora. Por favor, déjame tus valiosos comentarios en la sección de comentarios. Haz clic en Me gusta y comparte para ayudarnos a difundir.

Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/