El Comité FESCo (Comité de Dirección de Ingeniería de Fedora), encargado de la parte técnica del desarrollo de la distribución Fedora Linux, ha aprobado el uso por defecto del gestor de paquetes DNF5 en la versión de otoño de Fedora 41. Los paquetes dnf, libdnf y dnf-cutomatic serán reemplazados en Fedora 41 por las herramientas DNF5 y la nueva biblioteca libdnf5, y el enlace simbólico /usr/bin/dnf comenzará a apuntar al archivo ejecutable dnf5.
A pesar de que la paridad total en funcionalidad con el antiguo conjunto de herramientas aún no se ha alcanzado, los desarrolladores creen que la distribución está lista para la migración, y que las funcionalidades que faltan se pueden implementar más adelante. Por ejemplo, la funcionalidad relacionada con la gestión del historial de transacciones, que es la base del comando «dnf history», aún no está disponible. Además, aún no se ha completado la integración del soporte del proceso en segundo plano dnf5daemon en el gestor de aplicaciones GNOME Software. Se necesita pruebas adicionales en el mecanismo de actualización de todo el sistema a la siguiente versión (comando system-upgrade).
En su momento, DNF reemplazó en la distribución al gestor de paquetes Yum, que estaba completamente escrito en Python. En DNF, las funciones de bajo nivel exigentes en cuanto a rendimiento se reescribieron y se trasladaron a bibliotecas de C separadas como hawkey, librepo, libsolv y libcomps, pero la estructura y los componentes de alto nivel permanecieron en Python. El proyecto DNF5 tiene como objetivo la unificación de las bibliotecas de bajo nivel existentes, reescribiendo en C++ los componentes de gestión de paquetes que todavía están en Python, y trasladando la funcionalidad básica a una biblioteca separada libdnf5, creando una capa alrededor de esta biblioteca para mantener la API en Python.
El uso del lenguaje C++ en lugar de Python ha permitido eliminar un gran número de dependencias, reducir el tamaño de las herramientas y aumentar el rendimiento. Un mayor rendimiento se logra no solo mediante la compilación a código máquina, sino también gracias a la mejora en la implementación de la tabla de transacciones, la optimización de las descargas desde los repositorios y la reestructuración de la base de datos (se separan las bases con el estado del sistema y el historial de operaciones). El conjunto de herramientas DNF5 ha dejado atrás la dependencia de PackageKit, siendo sustituido por un nuevo proceso en segundo plano DNF Daemon, que reemplaza la funcionalidad de PackageKit y proporciona una interfaz para la gestión de paquetes y actualizaciones en entornos gráficos.
La reestructuración también ha permitido implementar algunas mejoras que aumentan la comodidad de uso del gestor de paquetes. Por ejemplo, en el nuevo DNF se ha incorporado una indicación más clara del progreso de las operaciones; se ha añadido soporte para el uso de paquetes RPM locales en las transacciones; se ha añadido la posibilidad de mostrar en los informes sobre las transacciones realizadas información proporcionada por los scripts integrados en los paquetes (scriplets); y se ha propuesto un sistema de autocompletado de entrada más avanzado para bash.
Fuente: opennet.ru
