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í:
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:
--skip-broken
no es reconocido por DNF y no hay una alternativa.- No existe un comando llamado ‘resolvedep‘, sin embargo, se puede ejecutar dnf provides.
- No hay un comando ‘deplist‘ para encontrar las dependencias del paquete.
- 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/