Ben Cotton, xestor do programa Fedora en Red Hat, anunciou a súa intención de migrar Fedora Linux por defecto ao xestor de paquetes DNF5. En Fedora Linux 39 planea substituír os paquetes dnf, libdnf e dnf-cutomatic pola cadea de ferramentas DNF5 e a nova biblioteca libdnf5. A proposta aínda non foi revisada polo FESCo (Comité Directivo de Enxeñaría de Fedora), o comité responsable do desenvolvemento técnico da distribución Fedora.
DNF substituíu a Yum, que estaba escrito integramente en Python. En DNF, as funcións de baixo nivel con alto rendemento reescribíronse e trasladáronse a bibliotecas C separadas (hawkey, librepo, libsolv e libcomps), pero o marco de traballo e os compoñentes de alto nivel permaneceron en Python. O proxecto DNF5 ten como obxectivo unificar as bibliotecas de baixo nivel existentes, reescribir os compoñentes restantes de xestión de paquetes Python en C++ e trasladar a funcionalidade principal a unha biblioteca separada, libdnf5, cun envoltorio arredor desta biblioteca para preservar a API de Python.
Empregar C++ en lugar de Python elimina numerosas dependencias, reduce o tamaño do kit de ferramentas e mellora o rendemento. A mellora do rendemento conséguese non só mediante a compilación nativa, senón tamén mediante unha implementación mellorada da táboa de transaccións, unha carga optimizada desde repositorios e unha reestruturación da base de datos (separando as bases de datos de estado do sistema e do historial de transaccións). O kit de ferramentas DNF5 xa non está vinculado a PackageKit, senón que usa un novo proceso en segundo plano, DNF Daemon, que substitúe a funcionalidade de PackageKit e proporciona unha interface para xestionar paquetes e actualizacións en entornos gráficos.
O redeseño tamén permitirá varias melloras para optimizar a usabilidade do xestor de paquetes. Por exemplo, o novo DNF implementa un indicador de progreso máis visual; engadiuse compatibilidade co uso de paquetes RPM locais para transaccións; engadiuse a capacidade de mostrar información xerada por scripts incrustados (scriptlets) nos informes de transaccións; e introduciuse un sistema de autocompletado de entrada máis avanzado para bash.
Fonte: opennet.ru
