Ben Cotton, responsable du programme Fedora chez Red Hat, a annoncé son intention de passer par défaut à DNF5 pour la gestion des paquets sous Fedora Linux. Fedora Linux 39 prévoit de remplacer les paquets dnf, libdnf et dnf-cutomatic par l’outil DNF5 et la nouvelle bibliothèque libdnf5. Cette proposition n'a pas encore été examinée par le comité FESCo (Fedora Engineering Steering Committee), chargé des aspects techniques du développement de la distribution Fedora.
À l'époque, DNF a remplacé Yum, qui était entièrement écrit en Python. Dans DNF, les fonctions bas niveau exigeantes en termes de performance ont été réécrites et extraites dans des bibliothèques C distinctes : hawkey, librepo, libsolv et libcomps, mais l’architecture et les composants de haut niveau sont restés en Python. Le projet DNF5 vise à unifier les bibliothèques bas niveau existantes, à réécrire en C++ les composants de gestion des paquets toujours en Python et à extraire les fonctionnalités de base dans une bibliothèque distincte libdnf5, tout en créant un wrapper autour de cette bibliothèque pour conserver l’API Python.
L'utilisation du C++ au lieu de Python permettra de réduire de nombreuses dépendances, de diminuer la taille de l'outil et d'augmenter les performances. Une performance supérieure est obtenue non seulement grâce à la compilation en code machine, mais aussi grâce à une meilleure implémentation de la table des transactions, à l'optimisation du chargement depuis les dépôts et à la restructuration de la base de données (les bases d'état du système et d'historique des opérations sont séparées). L'outil DNF5 est libéré de la dépendance à PackageKit, remplacé par un nouveau processus en arrière-plan DNF Daemon, qui remplit les fonctions de PackageKit et offre une interface pour la gestion des paquets et des mises à jour dans des environnements graphiques.
La refonte permettra également d'apporter certaines améliorations, renforçant la convivialité du gestionnaire de paquets. Par exemple, dans le nouveau DNF, une indication de progression plus visuelle des opérations a été mise en œuvre ; la prise en charge des RPM locaux pour les transactions a été ajoutée ; la possibilité d'afficher dans les rapports d'exécution les informations fournies par les scripts intégrés dans les paquets (scriplets) a été incluse ; et un système d'auto-complétion avancé pour bash a été proposé.
Source : opennet.ru
