DNF o Yum es una bifurcación del administrador de paquetes YUM. Se introdujo en Fedora 18 y en Fedora 22. Ahora se ha convertido en el administrador de paquetes predeterminado para manejar los paquetes RPM en CentOS 8, RHEL 8 y Fedora.
DNF resuelve todos los problemas asociados con yum, como bajo rendimiento, alto uso de memoria, lentitud para la resolución de dependencias. DNF puede denominarse como la próxima versión principal del administrador de paquetes YUM. Actualmente, la versión más estable de DNF es la versión 2.6.3
En este tutorial, analizaremos los comandos DNF utilizados para la gestión de paquetes. Este artículo servirá como una hoja de trucos para DNF. Así que empecemos…..
Comando DNF
La sintaxis para usar el comando DNF es bastante similar a usar YUM, por lo que encontrará muchas similitudes entre los dos comandos.
Ejemplo: 1) Lista de repositorios habilitados
Para enumerar todos los repositorios habilitados en el sistema, ejecute
[[email protected] ~]$ sudo dnf repolist [sudo] password for linuxtechi: repo id repo name status *epel Extra Packages for Enterprise Linux 7 - x86_64 11,989 *fedora Fedora 26 - x86_64 53,912 *updates Fedora 26 - x86_64 - Updates 9,405 virtualbox Fedora 26 - x86_64 - VirtualBox 10 [[email protected] ~]$
Ejemplo: 2) Listar todos los repositorios (habilitados y deshabilitados)
Si necesitamos ver todos los repositorios que están habilitados o deshabilitados, debemos ejecutar lo siguiente
[[email protected] ~]$ sudo dnf repolist all
Ejemplo: 3) Instalar un paquete
Como yum, usamos ‘Instalar en pc‘ opción seguida del nombre del paquete con dnf para instalar, supongamos que queremos instalar el paquete del servidor web (httpd)
[[email protected] ~]$ sudo dnf install httpd
Ejemplo: 4) Eliminar un paquete
Para eliminar un paquete, ejecute lo siguiente desde la terminal,
[[email protected] ~]$ sudo dnf remove httpd or [[email protected] ~]$ sudo dnf erase httpd
La salida del comando anterior sería algo como lo siguiente:
Ejemplo: 5) Actualizar un paquete
Ejecute el siguiente comando para actualizar un solo paquete en el sistema,
Sintaxis: dnf update {pkg-name}
[[email protected] ~]$ sudo dnf update filezilla
Ejemplo: 6) Comprobar la actualización completa del sistema
Para una verificación de actualización de todo el sistema, ejecute el siguiente comando,
[[email protected] ~]$ sudo dnf check-update
Ejemplo: 7) Actualizar todos los paquetes del sistema
Para actualizar todos los paquetes del sistema, ejecute lo siguiente
[[email protected] ~]$ sudo dnf upgrade
Ejemplo: 8) Listar todos los paquetes de grupo
Use lo siguiente para enumerar todos los paquetes de grupo
[[email protected] ~]$ sudo dnf grouplist Last metadata expiration check: 1:40:19 ago on Tue 10 Oct 2017 10:08:39 AM IST. Available Environment Groups: Fedora Custom Operating System Minimal Install Fedora Server Edition Fedora Workstation Fedora Cloud Server KDE Plasma Workspaces Xfce Desktop LXDE Desktop Hawaii Desktop LXQt Desktop Cinnamon Desktop MATE Desktop Sugar Desktop Environment Development and Creative Workstation Web Server Infrastructure Server Basic Desktop Installed Groups: LibreOffice Available Groups: 3D Printing Administration Tools Ansible node Audio Production …………………
Ejemplo: 9) Instalación de paquetes de grupo
Los paquetes similares se agrupan y se pueden instalar desde un solo comando, en lugar de usar comandos separados. Para instalar un grupo, ejecute
[[email protected] ~]$ sudo dnf groupinstall "Development Tools"
Ejemplo: 10) Eliminación de paquetes de grupo
Para eliminar un grupo completo de paquetes del sistema, ejecute el siguiente comando dnf,
Sintaxis: dnf groupremove ‘group_name’
[[email protected] ~]$ sudo dnf groupremove "Development Tools"
También podemos usar ‘groupupdate’ para actualizar los paquetes grupales.
Ejemplo: 11) Buscar paquetes
Para buscar un paquete en particular de los repositorios, ejecute
Sintaxis: búsqueda dnf {package_name}
Supongamos que quiero buscar el paquete net-tools
[[email protected] ~]$ sudo dnf search net-tools =========== Name Exactly Matched: net-tools ========= net-tools.x86_64 : Basic networking tools [[email protected] ~]$
Ejemplo: 12) Descargar (no instalar) un paquete
Puede haber algunos escenarios en los que necesitamos descargar los paquetes pero no deseamos instalarlos. Use el siguiente comando para descargar el paquete como samba
Sintaxis: dnf descargar paquete_nombre
[[email protected] ~]$ sudo dnf download samba samba-4.6.8-0.fc26.x86_64.rpm 139 kB/s | 636 kB 00:04 [[email protected] ~]$
Ejemplo: 13) Mostrar todos los paquetes disponibles
Para obtener una lista de todos los paquetes disponibles de los repositorios, abra la terminal y ejecute el comando dnf
[[email protected] ~]$ dnf list available | more
Ejemplo: 14) Mostrar solo paquetes instalados
Ahora, si solo requerimos una lista de paquetes instalados en el sistema, podemos obtenerla ejecutando el siguiente comando:
[[email protected] ~]$ dnf list installed
Ejemplo: 15) Mostrar todos los paquetes instalados y disponibles
Para obtener una lista de todos los paquetes, es decir, instalados y disponibles, ejecute el siguiente comando
[[email protected] ~]$ dnf list
Ejemplo: 16) Habilitar repositorio para instalación
Para usar un repositorio en particular para instalar un paquete, ejecute
[[email protected] ~]$ sudo dnf install --enablerepo=epel mysql Extra Packages for Enterprise Linux 7 - x86_64 3.9 MB/s | 13 MB 00:03 Dependencies resolved. ================================================================================ Package Arch Version Repository Size ================================================================================= Installing: mariadb x86_64 3:10.1.26-2.fc26 updates 6.4 M Installing dependencies: mariadb-common x86_64 3:10.1.26-2.fc26 updates 100 k mariadb-config x86_64 3:10.1.26-2.fc26 updates 33 k mariadb-libs x86_64 3:10.1.26-2.fc26 updates 663 k Transaction Summary ================================================================================= Total download size: 7.2 M Installed size: 44 M Is this ok [y/N]: y
Ejemplo: 17) Verifique qué paquete proporciona la función requerida
Si queremos saber qué paquete es responsable de obtener una funcionalidad particular, como si necesitamos saber el nombre del paquete que está asociado con ‘crontab’ o con algún otro comando, entonces podemos usar el comando dnf ‘proporciona‘ opción de la siguiente manera,
[[email protected] ~]$ sudo dnf provides crontab cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : @System cronie-1.5.1-5.fc26.x86_64 : Cron daemon for executing programs at set times Repo : fedora [[email protected] ~]$
Se puede hacer lo mismo contra un archivo, también podemos usar el mismo comando con una ubicación de archivo para obtener el nombre del paquete con el que está asociado el archivo,
[[email protected]]$ sudo dnf provides /var/www/html
Ejemplo: 18) Ver información del paquete
Para obtener detalles de un paquete específico, ejecute
[[email protected] ~]$ dnf info cronie Installed Packages Name : cronie Version : 1.5.1 Release : 5.fc26 Arch : x86_64 Size : 236 k Source : cronie-1.5.1-5.fc26.src.rpm Repo : @System From repo : anaconda Summary : Cron daemon for executing programs at set times URL : https://fedorahosted.org/cronie License : MIT and BSD and ISC and GPLv2+ Description : Cronie contains the standard UNIX daemon crond that runs / specified programs at : scheduled times and related tools. It is a fork of the / original vixie-cron and : has security and configuration enhancements like the / ability to use pam and : SELinux. [[email protected] ~]$
Ejemplo: 19) Construyendo un caché
Aunque el caché se crea automáticamente con el tiempo, también tenemos la opción de crear manualmente el caché, de modo que las acciones futuras sean rápidas y se completen rápidamente. Para crear un caché manualmente, ejecute
[[email protected] ~]$ sudo time dnf makecache Last metadata expiration check: 0:04:41 ago on Thu 12 Oct 2017 09:53:00 AM IST. Metadata cache created. 0.86user 0.12system 0:01.04elapsed 95%CPU (0avgtext+0avgdata 106872maxresident)k 0inputs+1192outputs (0major+39606minor)pagefaults 0swaps [[email protected] ~]$
Ejemplo: 20) Eliminar un caché
Para eliminar todos los datos almacenados en caché dnf, ejecute los siguientes comandos
[[email protected] ~]$ sudo dnf clean all 34 files removed [[email protected] ~]$
Ejemplo: 21) Verifique el historial de transacciones
Para verificar todas las transacciones que se han realizado con el comando DNF, ejecute los siguientes comandos
[[email protected] ~]$ sudo dnf history
Producirá una lista de todas las transacciones en el orden en que han ocurrido con un número correspondiente. Podemos usar este número para obtener más detalles de esa transacción,
[[email protected] ~]$ sudo dnf history info 5
Los registros relacionados con la instalación, la eliminación o las actualizaciones se guardan en el archivo de registro /var/log/dnf.log. Con el comando dnf history también podemos revertir las actualizaciones del sistema.
Ejemplo: 22) Eliminación de paquetes huérfanos
Los paquetes huérfanos son aquellos paquetes que alguna vez se instalaron para satisfacer la dependencia de algún otro paquete pero que ahora no son necesarios. Para eliminar dichos paquetes, ejecute
[[email protected] ~]$ sudo dnf autoremove
Ejemplo: 23) Sincronizar todos los paquetes con las últimas versiones estables
Ejecute el siguiente comando para sincronizar todos los paquetes con las últimas versiones estables,
[[email protected] ~]$ sudo dnf distro-sync
Si necesitamos sincronizar solo un paquete, mencione ese nombre_paquete al final; de lo contrario, se sincronizarán todos los paquetes.
Ejemplo: 24) Reinstalar un paquete
Para reinstalar un paquete, si es necesario, ejecute el siguiente comando,
[[email protected] ~]$ sudo dnf reinstall postfix Dependencies resolved. =========================================================================== Package Arch Version Repository Size =========================================================================== Reinstalling: postfix x86_64 2:3.2.2-1.fc26 fedora 1.4 M Transaction Summary =========================================================================== Total download size: 1.4 M Is this ok [y/N]: y
Ejemplo: 25) Actualizar a una versión particular
Con DNF, también es posible actualizar el paquete rpm a una versión particular, para lograr esto ejecute el siguiente comando,
[[email protected] ~]$ sudo dnf upgrade-to httpd-2.4.27-3.fc26
Ejemplo: 26) Obtener una lista de todos los comandos y opciones DNF
Para obtener una lista de todas las opciones disponibles que se pueden usar con DNF, ejecute
[[email protected] ~]$ dnf help
Este fue nuestro tutorial completo para el administrador de paquetes DNF con ejemplos. Deje cualquier consulta o pregunta que tenga para este tutorial en los comentarios a continuación.