27 Comandos 'DNF' (Fork of Yum) para la administración de paquetes RPM en Linux


DNF, también conocido como Dandified YUM, es un administrador de paquetes de próxima generación para distribución basada en RPM. Se introdujo por primera vez en Fedora 18 y ha reemplazado a la utilidad YUM en la versión reciente de Fedora 22.

DNF tiene como objetivo mejorar los cuellos de botella de YUM, a saber, el rendimiento, los usos de la memoria, la resolución de dependencias, la velocidad y muchos otros factores. DNF realiza la gestión de paquetes utilizando RPM, libsolv y la biblioteca hawkey. Aunque no viene instalado en CentOS y RHEL 7, puede yum, dnf y usarlo junto con yum.

Es posible que desee leer más sobre DNF aquí:

  1. Reasons Behind Replacing Yum with DNF

La última versión estable de DNF es 1.0 (en el momento de redactar la publicación) que se publicó el 11 de mayo de 2015. Esta (y todas las versiones anteriores de DNF) está escrita principalmente en Python y se publica bajo la licencia GPL v2.

DNF no está disponible en el repositorio predeterminado de RHEL/CentOS 7. Sin embargo, Fedora 22 se envía con DNF implementado oficialmente.

Para instalar DNF en sistemas RHEL/CentOS, primero debe 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 para ver qué se está instalando en su sistema. Sin embargo, si esto no le importa mucho, puede usar "-y" con yum para instalar todo automáticamente sin la intervención del usuario.

Luego, instale el paquete DNF usando el comando yum del repositorio epel-release.

# yum install dnf

Después de que dnf se haya instalado correctamente, es hora de mostrarle 27 usos prácticos de los comandos dnf con ejemplos que le ayudarán a administrar paquetes en la distribución basada en RPM de manera fácil y eficaz.

Verifique la versión de DNF instalada en su sistema.

# dnf --version

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

# dnf repolist

La opción "volver a listar todos" imprimirá todos los repositorios habilitados/deshabilitados en su sistema.

# dnf repolist all

El comando "dnf list" listará todos los paquetes disponibles de todos los repositorios y paquetes instalados en su sistema Linux.

# dnf list

Mientras que el comando "dnf list" muestra todos los paquetes disponibles/instalados de todos los repositorios. Sin embargo, tiene la opción de listar solo los paquetes instalados usando la opción "lista instalada" como se muestra a continuación.

# dnf list installed

De manera similar, la opción “lista disponible”, listará todos los paquetes disponibles para ser instalados desde todos los repositorios habilitados.

# dnf list available

En caso de que no tenga idea del paquete que desea instalar, en tal situación puede usar la opción "buscar" con el comando dnf para buscar el paquete que coincida con la palabra o cadena (por ejemplo, nano).

# dnf search nano

La opción dnf "proporciona" busca el nombre del paquete que proporciona un archivo/subpaquete específico. Por ejemplo, si desea encontrar lo que proporciona "/ bin/bash" en su sistema?

# dnf provides /bin/bash

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

# dnf info nano

Para instalar un paquete llamado nano, simplemente ejecute el siguiente comando; resolverá e instalará automáticamente todas las dependencias requeridas para el paquete nano.

# dnf install nano

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

# dnf update systemd

Verifique las actualizaciones de todos los paquetes del sistema instalados en el sistema simplemente como.

# dnf check-update

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

# dnf update
OR
# dnf upgrade

Para eliminar o borrar cualquier paquete no deseado (digamos nano), puede usar el interruptor "eliminar" o "borrar" con el comando dnf para eliminarlo.

# dnf remove nano
OR
# dnf erase nano

Los paquetes que se instalaron para satisfacer la dependencia pueden ser inútiles si no están siendo utilizados por otras aplicaciones. Para eliminar esos paquetes huérfanos, ejecute el siguiente comando.

# dnf autoremove

Muchas veces nos encontramos con encabezados desactualizados y transacciones inacabadas que dan como resultado un error al ejecutar dnf. Podemos limpiar todos los paquetes en caché y los encabezados que contienen información de paquetes remotos simplemente ejecutando.

# dnf clean all

Puede obtener ayuda de cualquier comando dnf específico (por ejemplo, limpio) simplemente ejecutando el siguiente comando.

# dnf help clean

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

# dnf help

Puede llamar a dnf history para ver la lista de comandos dnf ya ejecutados. De esta manera, puede estar al tanto de lo que se instaló/eliminó con la marca de tiempo.

# dnf history

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

# dnf grouplist

Para instalar un grupo de paquetes agrupados como paquete de grupo (por ejemplo, software educativo) simplemente como.

# dnf groupinstall 'Educational Software'

Actualicemos un paquete grupal (por ejemplo, software educativo) ejecutando el siguiente comando.

# dnf groupupdate 'Educational Software'

Podemos eliminar el paquete de grupo (por ejemplo, software educativo) como.

# dnf groupremove 'Educational Software'

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

# dnf --enablerepo=epel install phpmyadmin

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

# dnf distro-sync

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

# dnf reinstall nano

La opción "degradar" degradará el paquete nombrado (digamos acpid) a una versión más baja si es posible.

# dnf downgrade acpid
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 rebaja el paquete como se supone. También se ha informado como error.

Conclusión

DNF es el avanzado y avanzado Package Manager YUM. Tiende a realizar una gran cantidad de procesamiento automáticamente, lo que no va a ser elogiado por muchos administradores de sistemas Linux experimentados, como creo. A modo de ejemplo:

  1. --skip-broken is not recognized by DNF and there is no alternative.
  2. There is nothing like ‘resolvedep‘ command however you may run dnf provides.
  3. There is no ‘deplist‘ command to find package dependency.
  4. You exclude a repo, means the exclusion apply on all operations, unlike yum which excludes those repos only at the time of install and updates, etc.

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

¿Qué piensas? son distribuciones y todo el ecosistema de Linux no valora a sus usuarios y se mueve en contra de su voluntad. También se dice a menudo en la industria de TI: "¿Por qué arreglar, si no está roto?", Y ni init System V está roto ni YUM.

Eso es todo por ahora. Hágame saber sus valiosos pensamientos en los comentarios a continuación. Me gusta y comparte con nosotros y ayúdanos a difundir.