Ben Cotton, pełniący funkcję Fedora Program Manager w firmie Red Hat, ogłosił zamiar wprowadzenia domyślnego menedżera pakietów DNF5 dla Fedora Linux. W Fedora Linux 39 planowane jest zastąpienie pakietów dnf, libdnf oraz dnf-cutomatic narzędziem DNF5 i nową biblioteką libdnf5. Propozycja ta nie została jeszcze rozważona przez komitet FESCo (Fedora Engineering Steering Committee), odpowiedzialny za część techniczną rozwoju dystrybucji Fedora.
W swoim czasie DNF zastąpił Yum, który był napisany całkowicie w języku Python. W DNF wymagające wydajności funkcje niskiego poziomu zostały przepisaną i wydzielone do osobnych bibliotek C, takich jak hawkey, librepo, libsolv oraz libcomps, ale szkielet i komponenty na wyższym poziomie pozostały w języku Python. Projekt DNF5 ma na celu unifikację istniejących niskopoziomowych bibliotek oraz przepisywanie pozostałych komponentów zarządzania pakietami z Pythona na C++, a także wydzielenie podstawowej funkcjonalności do osobnej biblioteki libdnf5, z tworzeniem wokół niej opakowania dla zachowania API Pythona.
Użycie języka C++ zamiast Pythona pozwoli pozbyć się licznych zależności, zmniejszyć wielkość narzędzi oraz zwiększyć wydajność. Wyższa wydajność osiągana jest nie tylko dzięki zastosowaniu kompilacji do kodu maszynowego, ale także dzięki lepszej implementacji tabeli transakcji, optymalizacji ładowania z repozytoriów i restrukturyzacji bazy danych (bazy stanu systemu i historia operacji są oddzielone). Narzędzie DNF5 zostało uwolnione od powiązań z PackageKit, a zamiast niego wykorzystano nowy proces w tle DNF Daemon, który zastępuje funkcjonalność PackageKit i zapewnia interfejs do zarządzania pakietami oraz aktualizacjami w graficznych środowiskach.
Przebudowa da także możliwość wdrożenia kilku ulepszeń, które zwiększą wygodę korzystania z menedżera pakietów. Na przykład, w nowym DNF wprowadzono bardziej widoczną wskazówkę postępu wykonywania operacji; dodano wsparcie dla używania lokalnych pakietów RPM w transakcjach; dodano możliwość wyświetlania w raportach o przeprowadzonych transakcjach informacji wydawanych przez skrypty osadzone w pakietach (scriplets); zaproponowano bardziej zaawansowany system autouzupełniania dla bash.
Źródło: opennet.ru
