Ben Cotton, menedżer programu Fedora w Red Hat, ogłosił zamiar migracji Fedory Linux Domyślnie do menedżera pakietów DNF5. W Fedorze Linux 39 planuje zastąpić pakiety dnf, libdnf i dnf-cutomatic zestawem narzędzi DNF5 i nową biblioteką libdnf5. Propozycja ta nie została jeszcze zatwierdzona przez FESCo (Komitet Sterujący ds. Inżynierii Fedory), komitet odpowiedzialny za rozwój techniczny dystrybucji Fedora.
W pewnym momencie DNF zastąpił Yum, który został napisany w całości w Pythonie. W DNF funkcje niskiego poziomu wymagające dużej wydajności zostały przepisane i przeniesione do oddzielnych bibliotek C: hawkey, librepo, libsolv i libcomps, ale framework i komponenty wysokiego poziomu pozostały w Pythonie. Projekt DNF5 ma na celu ujednolicenie istniejących bibliotek niskiego poziomu, przepisanie pozostałych komponentów zarządzania pakietami Pythona w C++ oraz przeniesienie podstawowej funkcjonalności do oddzielnej biblioteki libdnf5, wraz z utworzeniem wrappera dla tej biblioteki w celu zachowania API Pythona.
Użycie języka C++ zamiast Pythona wyeliminuje znaczną liczbę zależności, zmniejszy rozmiar zestawu narzędzi i poprawi wydajność. Wyższą wydajność osiąga się nie tylko dzięki kompilacji do kodu maszynowego, ale także dzięki ulepszeniu implementacji tabeli transakcji, optymalizacji ładowania z repozytoriów i restrukturyzacji bazy danych (bazy danych ze stanem systemu i historią operacji są rozdzielone). Zestaw narzędzi DNF5 nie jest już powiązany z PackageKit, lecz korzysta z nowego procesu działającego w tle – demona DNF, który zastępuje funkcjonalność PackageKit i zapewnia interfejs do zarządzania pakietami i aktualizacjami w środowiskach graficznych.
Przebudowa umożliwi również wprowadzenie pewnych usprawnień zwiększających wygodę pracy z menedżerem pakietów. Na przykład, nowy DNF wprowadza bardziej wizualne wskazanie postępu operacji; dodano obsługę lokalnych pakietów RPM dla transakcji; dodano możliwość wyświetlania informacji w raportach o zakończonych transakcjach, generowanych przez skryptlety wbudowane w pakiety; zaproponowano bardziej zaawansowany system autouzupełniania danych wejściowych dla powłoki Bash.
Źródło: opennet.ru
