Ben Cotton, der bei Red Hat als Fedora Program Manager tätig ist, hat angekündigt, Fedora Linux standardmäßig auf den Paketmanager DNF5 umzusteigen. In Fedora Linux 39 sollen die Pakete dnf, libdnf und dnf-cutomatic durch das DNF5-Toolset und die neue Bibliothek libdnf5 ersetzt werden. Der Vorschlag wurde bisher noch nicht vom FESCo-Ausschuss (Fedora Engineering Steering Committee), der für die technische Entwicklung der Fedora-Distribution verantwortlich ist, geprüft.
DNF trat einst an die Stelle von Yum, das vollständig in Python geschrieben war. Bei DNF wurden leistungskritische Low-Level-Funktionen umgeschrieben und in separate C-Bibliotheken wie hawkey, librepo, libsolv und libcomps ausgelagert, während der Rahmen und die hochgradigen Komponenten in Python verbleiben. Das DNF5-Projekt zielt darauf ab, die bestehenden Low-Level-Bibliotheken zu vereinheitlichen, die verbleibenden in Python geschriebenen Komponenten des Paketmanagements in C++ neu zu schreiben und die grundlegende Funktionalität in einer separaten Bibliothek libdnf5 auszulagern, um rund um diese Bibliothek eine Schnittstelle für die Beibehaltung der Python-API zu schaffen.
Der Einsatz der Programmiersprache C++ anstelle von Python reduziert eine Vielzahl von Abhängigkeiten, verkleinert das Toolset und steigert die Leistung. Diese höhere Leistung wird nicht nur durch die Kompilierung in Maschinencode erreicht, sondern auch durch eine verbesserte Implementierung der Transaktionstabelle, Optimierung des Zugriffs auf Repositories sowie durch die Restrukturierung der Datenbank (die Datenbanken für den Systemzustand und die Historie der Operationen sind getrennt). Das Toolset DNF5 ist von der Abhängigkeit zu PackageKit befreit und verwendet stattdessen einen neuen Hintergrundprozess, den DNF Daemon, der die Funktionalität von PackageKit ersetzt und eine Schnittstelle zur Verwaltung von Paketen und Updates in grafischen Umgebungen bietet.
Die Überarbeitung wird es auch ermöglichen, einige Verbesserungen umzusetzen, die die Bedienung des Paketmanagers erleichtern. Zum Beispiel bietet das neue DNF eine anschaulichere Fortschrittsanzeige während der Durchführung von Operationen; es wurde Unterstützung für die Verwendung lokaler RPM-Pakete bei Transaktionen hinzugefügt; in den Berichten über ausgeführte Transaktionen können Informationen angezeigt werden, die von in die Pakete integrierten Skripten (scriplets) generiert werden; ein fortschrittlicheres Autovervollständigungs-System für bash wurde vorgeschlagen.
Quelle: opennet.ru
