Los desarrolladores de Fedora Linux tienen la intención de migrar la distribución a un nuevo gestor de paquetes Microdnf en lugar del DNF actualmente utilizado. El primer paso en el camino hacia la migración será la significativa actualización planificada de Microdnf en el lanzamiento de Fedora Linux 38, que se acercará a las funcionalidades de DNF y en algunos aspectos incluso superará a este. Se destaca que la nueva versión de Microdnf soportará todas las funciones principales de DNF, pero mantendrá un alto rendimiento y compacidad.
La principal diferencia entre Microdnf y DNF es el uso del lenguaje C para su desarrollo, en lugar de Python, lo que permite eliminar un gran número de dependencias. Inicialmente, Microdnf se desarrolló como una versión reducida de DNF para su uso en contenedores Docker, sin requerir la instalación de Python. Ahora, los desarrolladores de Fedora planean llevar a Microdnf al nivel de DNF y, con el tiempo, reemplazar completamente DNF por Microdnf.
Microdnf se basa en la biblioteca libdnf5, que se desarrolla en el marco del proyecto DNF 5. La idea principal detrás de DNF 5 es reescribir las operaciones básicas de gestión de paquetes en el lenguaje C++ y trasladarlas a una biblioteca independiente, creando alrededor de esta biblioteca un envoltorio para mantener la API de Python.
La nueva versión de Microdnf también utilizará el 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. A diferencia de PackageKit, DNF Daemon solo ofrecerá soporte para el formato RPM.
Microdnf, libdnf5 y DNF Daemon en la primera fase de implementación se planea que se ofrezcan en paralelo con las herramientas tradicionales de DNF. Una vez que el proyecto alcance su plena madurez, la nueva combinación reemplazará paquetes como dnf, python3-dnf, python3-hawkey, libdnf, dnfdragora y python3-dnfdaemon.
Entre las áreas en las que Microdnf supera a DNF se destacan: una indicación más clara del progreso de las operaciones; una implementación mejorada de la tabla de transacciones; la posibilidad de incluir en los informes sobre transacciones ejecutadas la información proporcionada por los scripts integrados en los paquetes (scriplets); soporte para el uso de paquetes RPM locales para transacciones; un sistema de autocompletado de entrada más avanzado para bash; soporte para la ejecución del comando builddep sin necesidad de instalar Python en el sistema.
Entre las desventajas de la transición del distribuidor a Microdnf se menciona el cambio en la estructura de las bases de datos internas y el procesamiento de bases de datos separado de DNF, lo que no permitirá ver en Microdnf las transacciones con paquetes realizadas en DNF y viceversa. Además, en Microdnf no se planea mantener una compatibilidad del 100% con DNF a nivel de comandos y opciones de línea de comandos. También se observarán algunas discrepancias en el comportamiento. Por ejemplo, la eliminación de un paquete no llevará a la eliminación de las dependencias relacionadas que no se utilizan en otros paquetes.
Fuente: opennet.ru
