Búsqueda de sitios web

DNF: la utilidad de gestión de paquetes de próxima generación basada en RPM


En el mundo de las distribuciones basadas en RPM, mantener actualizados sus paquetes de software es crucial para mantener la seguridad y estabilidad del sistema. Afortunadamente, dnf proporciona una utilidad de administración de paquetes potente y fácil de usar para administrar actualizaciones de software. En esta publicación de blog, exploraremos las características de dnf y cómo mejora a su predecesor, yum.

¿Qué es DNF?

DNF es la utilidad de administración de paquetes de próxima generación para distribuciones de Linux basadas en RPM. Es un administrador de paquetes moderno y de código abierto que está diseñado para facilitar a los usuarios la administración de paquetes de software en sus sistemas. DNF significa "Dandified Yum", que es una referencia a su predecesor, Yum.

DNF se introdujo por primera vez en Fedora 18 y, desde entonces, se ha convertido en el administrador de paquetes predeterminado para muchas distribuciones de Linux basadas en RPM, incluidas Fedora, CentOS 8 y RHEL 8. DNF se basa en la misma base de código que Yum pero con muchas mejoras. , incluido un mejor rendimiento, mayor seguridad y una interfaz más fácil de usar.

¿Por qué es necesario DNF?

Antes de profundizar en los detalles técnicos de DNF, tomemos un momento para comprender por qué se creó en primer lugar. La respuesta a esa pregunta está en las deficiencias del antiguo administrador de paquetes Yum.

Yum fue diseñado en una época en la que las distribuciones basadas en RPM aún estaban en su infancia. Era una herramienta sencilla que podía ayudar a los usuarios a gestionar paquetes de software en sus sistemas, pero tenía varias limitaciones. Por ejemplo, era lento, no manejaba muy bien las dependencias y era propenso a errores.

Con el tiempo, a medida que las distribuciones basadas en RPM se volvieron más populares y complejas, las limitaciones de Yum se hicieron más pronunciadas. Tanto los desarrolladores como los usuarios comenzaron a buscar un mejor administrador de paquetes que pudiera abordar estos problemas.

Ahí es donde entra en juego DNF. DNF fue diseñado desde cero para ser un administrador de paquetes moderno, confiable y fácil de usar. Utiliza el mismo formato de paquete RPM que Yum, pero tiene muchas mejoras que la convierten en una herramienta superior.

¿Cómo funciona DNF?

Ahora que entendemos por qué se creó DNF, veamos cómo funciona. En esencia, DNF es una herramienta de línea de comandos que permite a los usuarios administrar paquetes de software en sus sistemas. Se puede utilizar para instalar, actualizar y eliminar paquetes, así como para buscar paquetes y enumerar los paquetes instalados.

Una de las características clave de DNF es su compatibilidad con complementos. Los complementos son módulos que pueden ampliar la funcionalidad de DNF de varias maneras. Por ejemplo, existen complementos que pueden ayudar con el almacenamiento en caché, el ajuste del rendimiento y la depuración. Los complementos se pueden instalar y configurar utilizando el archivo de configuración DNF.

Otra característica clave de DNF es el uso de repositorios modulares. Los repositorios modulares son colecciones de paquetes de software que se agrupan según su funcionalidad. Por ejemplo, podría haber un módulo para servidores web, un módulo para servidores de bases de datos y un módulo para herramientas de desarrollo. Cada módulo contiene un conjunto de paquetes que han sido probados y verificados para funcionar juntos.

Los repositorios modulares facilitan a los usuarios la gestión de sus paquetes de software porque pueden optar por habilitar sólo los módulos que necesitan. Esto ayuda a reducir el riesgo de conflictos y garantiza que los paquetes del sistema estén actualizados y sean seguros.

Usando DNF

Ahora que entendemos cómo funciona DNF, veamos cómo usarlo. DNF se puede utilizar desde la línea de comandos o mediante una interfaz gráfica, como la aplicación de software GNOME.

Para instalar un paquete usando DNF, simplemente escriba el siguiente comando:

dnf install package_name

Por ejemplo, para instalar el servidor web Apache, escribiría:

dnf install httpd

Luego, DNF descargará e instalará el paquete y las dependencias necesarias.

Para actualizar un paquete usando DNF, escriba el siguiente comando:

dnf update package_name

Por ejemplo, para actualizar el servidor web Apache, escribiría:

dnf update httpd

Luego, DNF buscará actualizaciones y descargará e instalará las que estén disponibles.

Para eliminar un paquete usando DNF, escriba el siguiente comando:

dnf remove package_name

Por ejemplo, para eliminar el servidor web Apache, escribiría:

dnf remove httpd

Luego, DNF eliminará el paquete y cualquier dependencia que ya no sea necesaria.

DNF también tiene muchos otros comandos y opciones que pueden usarse para administrar paquetes en el sistema. Por ejemplo, puede utilizar el comando de búsqueda para buscar paquetes, el comando info para obtener información sobre un paquete y el comando list para enumerar todos los paquetes instalados.

Cómo se compara DNF con otros administradores de paquetes

DNF es uno de varios administradores de paquetes disponibles para distribuciones de Linux basadas en RPM. Yum, Zypper y Apt-RPM son otros administradores de paquetes populares. Aquí hay algunas diferencias entre DNF y estos otros administradores de paquetes:

  • Yum: Yum es el predecesor de DNF y existe desde hace más de una década. DNF se creó para abordar algunas de las limitaciones de Yum, como el rendimiento lento, la falta de resolución de dependencias y una arquitectura de complementos limitada. Si bien Yum todavía se usa en algunas versiones anteriores de distribuciones basadas en RPM, DNF es el administrador de paquetes recomendado para versiones más nuevas.

  • Zypper: Zypper es el administrador de paquetes predeterminado para las distribuciones SUSE Linux Enterprise y openSUSE. Al igual que DNF, tiene una arquitectura de complemento y admite la descarga paralela de paquetes. Sin embargo, generalmente se considera que DNF es más rápido y confiable que Zypper, especialmente cuando se trata de resolución de dependencias.

  • Apt-RPM: Apt-RPM es una adaptación del administrador de paquetes de Debian (APT) para distribuciones basadas en RPM. Tiene una interfaz de línea de comandos y una sintaxis similar a APT, pero tiene algunas limitaciones cuando se trata de características específicas de RPM, como RPM delta y firma de paquetes. Generalmente se considera que DNF es una mejor opción para administrar distribuciones basadas en RPM.

En general, DNF es un administrador de paquetes moderno, confiable y fácil de usar que tiene muchas ventajas sobre otros administradores de paquetes.

Cómo instalar y configurar DNF

Instalar y configurar DNF es sencillo. Estos son los pasos:

  • Verifique los requisitos de su sistema: DNF requiere un mínimo de 1 GB de RAM y 10 GB de espacio libre en disco.

  • Instalar DNF: para instalar DNF en un sistema basado en Fedora, ejecute el siguiente comando:

sudo dnf install dnf
  • Para instalar DNF en un sistema Red Hat Enterprise Linux o CentOS, primero deberá habilitar el repositorio EPEL:

sudo yum install epel-release
sudo yum install dnf
  • Configurar DNF: DNF se configura a través del archivo /etc/dnf/dnf.conf. A continuación se muestran algunas opciones de configuración básicas:

    • installonly_limit : establece la cantidad máxima de versiones antiguas de paquetes que se mantendrán en el sistema. El valor predeterminado es 3.

    • clean_requirements_on_remove: elimina las dependencias que ya no son necesarias cuando se elimina un paquete. El valor por defecto es verdadero.

    • gpgcheck: habilita o deshabilita la verificación de firma de paquetes. El valor por defecto es verdadero.

    • max_parallel_downloads : establece la cantidad máxima de paquetes para descargar a la vez. El valor predeterminado es 3.

También puede configurar repositorios individuales creando un archivo en el directorio /etc/yum.repos.d/. Aquí hay un ejemplo de un archivo de repositorio para el repositorio de actualizaciones de Fedora:

[fedora-updates]
name=Fedora $releasever - $basearch - Updates
metadata_expire=6h
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch

Cómo crear su propio complemento DNF

Crear tu propio complemento DNF también es relativamente fácil. Estos son los pasos:

  • Crear un directorio de complementos: cree un directorio para su complemento en /usr/lib/dnf/plugins/ con un nombre descriptivo. Por ejemplo -

sudo mkdir /usr/lib/dnf/plugins/myplugin
  • Cree un archivo Python para su complemento: cree un archivo Python en su directorio de complementos con un nombre descriptivo y una extensión .py. Por ejemplo -

sudo nano /usr/lib/dnf/plugins/myplugin/myplugin.py
  • Defina su clase de complemento: en su archivo Python, defina una clase para su complemento que herede de la clase dnf.Plugin. Aquí hay un ejemplo:

from dnf.plugins import Plugin

class MyPlugin(Plugin):
   name = 'myplugin'

   def __init__(self, base, cli):
      super(MyPlugin, self).__init__(base, cli)
  • Implemente la lógica de su complemento: agregue métodos a su clase que implementen la funcionalidad de su complemento. Por ejemplo -

def posttrans(self):
   print("My plugin was called after a transaction was completed!")
  • Registra tu complemento - En tu archivo Python, agrega una llamada a la función dnf.plugin.register() para registrar tu complemento. Por ejemplo -

from dnf.plugins import Plugin, plugin

class MyPlugin(Plugin):
   name = 'myplugin'

  def __init__(self, base, cli):
        super(MyPlugin, self).__init__(base, cli)

   def posttrans(self):
       print("My plugin was called after a transaction was completed!")

plugin.register(MyPlugin)
  • Pruebe su complemento: ejecute DNF con las opciones --verbose y --debugsolver para ver si se llama a su complemento. Por ejemplo -

sudo dnf update --verbose --debugsolver

Deberías ver que tu complemento se carga y se llama en el resultado.

Conclusión

DNF es la utilidad de administración de paquetes de próxima generación para distribuciones de Linux basadas en RPM. Ofrece muchas ventajas sobre administradores de paquetes anteriores como Yum, incluido un rendimiento más rápido, una mejor resolución de dependencias y una arquitectura de complementos más flexible. Con DNF, puede instalar, actualizar y eliminar paquetes en su sistema fácilmente, así como crear sus propios complementos para ampliar su funcionalidad.

Si sigue los pasos descritos en esta publicación de blog, debería poder instalar y configurar DNF en su sistema, así como crear su propio complemento DNF. Ya sea administrador de sistemas, desarrollador o entusiasta de Linux, DNF es una herramienta poderosa y versátil que puede ayudarlo a administrar su sistema de manera más efectiva.

Artículos relacionados: