Fedora 39 ma zostać przeniesiona do wersji DNF5, wolnej od komponentów Pythona

Ben Cotton, menedżer programu Fedora w Red Hat, ogłosił zamiar domyślnej migracji Fedory Linux do menedżera pakietów DNF5. Fedora Linux 39 planuje zastąpić pakiety dnf, libdnf i dnf-cutomatic zestawem narzędzi DNF5 i nową biblioteką libdnf5. Propozycja nie została jeszcze zweryfikowana przez FESCo (Komitet Sterujący ds. Inżynierii Fedory), który jest odpowiedzialny za techniczną część rozwoju dystrybucji Fedory.

W pewnym momencie DNF zastąpił Yum, który został napisany w całości w Pythonie. W DNF wymagające wydajności funkcje niskiego poziomu 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++ i przeniesienie podstawowej funkcjonalności do osobnej biblioteki libdnf5 wraz z utworzeniem powiązania wokół tej biblioteki w celu zachowania API Pythona.

Używanie C++ zamiast Pythona pozbędzie się wielu zależności, zmniejszy rozmiar zestawu narzędzi i poprawi wydajność. Wyższą wydajność osiągnięto nie tylko dzięki zastosowaniu kompilacji do kodu maszynowego, ale także dzięki ulepszonej implementacji tabeli transakcji, optymalizacji ładowania z repozytoriów i restrukturyzacji bazy danych (oddzielone są bazy danych ze stanem systemu i historią operacji). Zestaw narzędzi DNF5 został oddzielony od PackageKit za pomocą nowego procesu w tle, DNF Daemon, zastępującego funkcjonalność PackageKit i udostępniającego interfejs do zarządzania pakietami i aktualizacjami w środowiskach graficznych.

Przeróbka umożliwi także wprowadzenie pewnych ulepszeń zwiększających użyteczność menedżera pakietów. Na przykład nowy DNF wprowadza bardziej wizualne wskazanie postępu operacji; dodano obsługę wykorzystania lokalnych pakietów RPM do transakcji; dodano możliwość wyświetlania w raportach o zrealizowanych transakcjach informacji wygenerowanych przez skrypty wbudowane w pakiety (skryptlety); zaproponował bardziej zaawansowany system uzupełniania danych wejściowych dla basha.

Źródło: opennet.ru

Dodaj komentarz