Le comité FESCo (Fedora Engineering Steering Committee), responsable de la partie technique du développement de la distribution Fedora Linux, a approuvé l'utilisation par défaut du gestionnaire de paquets DNF5 dans la version d'automne de Fedora 41. Les paquets dnf, libdnf et dnf-cutomatic seront remplacés dans Fedora 41 par les outils DNF5 et la nouvelle bibliothèque libdnf5, tandis que le lien symbolique /usr/bin/dnf commencera à pointer vers le fichier exécutable dnf5.
Bien qu'il n'y ait pas encore de parité fonctionnelle complète avec l'ancien ensemble d'outils, les développeurs estiment que la distribution est prête pour la migration, et que les fonctionnalités manquantes pourront être mises en œuvre ultérieurement. Par exemple, la fonctionnalité liée à la gestion de l'historique des transactions, qui repose sur la commande « dnf history », n'est pas encore disponible. De plus, l'intégration du support du processus en arrière-plan dnf5daemon dans le gestionnaire d'applications GNOME Software n'est pas encore terminée. La mise à jour de l'ensemble du système vers la prochaine version (commande system-upgrade) nécessite également des tests supplémentaires.
À l'origine, DNF a remplacé le gestionnaire de paquets Yum dans la distribution, qui était entièrement écrit en Python. Dans DNF, les fonctions de bas niveau exigeantes en performances ont été réécrites et extraites dans des bibliothèques C séparées, à savoir hawkey, librepo, libsolv et libcomps, mais le cadre et les composants de haut niveau sont restés en Python. Le projet DNF5 vise à unifier les bibliothèques de bas niveau existantes, à réécrire les composants de gestion de paquets restants en Python en C++, et à extraire les fonctionnalités de base dans une bibliothèque séparée libdnf5, en créant un wrapper autour de cette bibliothèque pour maintenir l'API Python.
L'utilisation du langage C++ au lieu de Python a permis d'éliminer un grand nombre de dépendances, de réduire la taille de l'ensemble d'outils et d'améliorer les performances. Une performance supérieure est obtenue non seulement grâce à la compilation en code machine, mais aussi grâce à une implémentation améliorée de la table des transactions, à une optimisation des chargements depuis les dépôts et à une restructuration de la base de données (distinctes sont les bases de l'état du système et de l'historique des opérations). L'ensemble d'outils DNF5 n'est plus lié à PackageKit, qui est remplacé par un nouveau processus en arrière-plan DNF Daemon, fournissant la fonctionnalité de PackageKit ainsi qu'une interface pour la gestion des paquets et des mises à jour dans les environnements graphiques.
La refonte a également permis de mettre en œuvre certaines améliorations qui facilitent l'utilisation du gestionnaire de paquets. Par exemple, la nouvelle version de DNF propose une meilleure indication visuelle de la progression des opérations ; elle prend en charge l'utilisation de paquets RPM locaux pour les transactions ; elle permet d'afficher dans les rapports sur les transactions effectuées des informations fournies par les scripts intégrés dans les paquets (scriplets) ; et elle propose un système d'auto-complétion plus avancé pour bash.
Source : opennet.ru
