Programiści Fedora Linux zamierzają przenieść dystrybucję na nowy menedżer pakietów Microdnf zamiast obecnie używanego DNF. Pierwszym krokiem w kierunku migracji będzie planowana w wydaniu Fedora Linux 38 znacząca aktualizacja Microdnf, który będzie zbliżony funkcjonalnością do DNF, a w niektórych obszarach nawet go przewyższy. Zauważono, że nowa wersja Microdnf będzie wspierać wszystkie podstawowe funkcje DNF, ale przy tym zachowa wysoką wydajność i kompaktowość.
Kluczową różnicą między Microdnf a DNF jest użycie do jego rozwoju języka C, zamiast Pythona, co pozwala uniknąć dużej liczby zależności. Początkowo Microdnf rozwijał się jako uproszczona wersja DNF do użycia w kontenerach Docker, która nie wymagała instalacji Pythona. Teraz programiści Fedory planują doprowadzić Microdnf do poziomu DNF i z czasem całkowicie zastąpić DNF Microdnf.
Podstawą Microdnf jest biblioteka libdnf5, rozwijana w ramach projektu DNF 5. Główną ideą DNF 5 jest przepisanie podstawowych operacji zarządzania pakietami w języku C++ i wydzielenie ich do osobnej biblioteki, z tworzeniem wokół tej biblioteki obwiedni dla zachowania API Pythona.
Nowa wersja Microdnf również będzie używać procesu w tle DNF Daemon, zastępującego funkcjonalność PackageKit i dostarczającego interfejs do zarządzania pakietami i aktualizacjami w graficznych środowiskach. W przeciwieństwie do PackageKit, w DNF Daemon będzie oferowane wsparcie tylko dla formatu RPM.
Microdnf, libdnf5 i DNF Daemon na pierwszym etapie wdrażania planują być dostarczane równolegle z tradycyjnym zestawem narzędzi DNF. Po doprowadzeniu projektu do pełnej gotowości nowa wersja zastąpi takie pakiety jak dnf, python3-dnf, python3-hawkey, libdnf, dnfdragora i python3-dnfdaemon.
Z obszarów, w których Microdnf przewyższa DNF, wskazano: bardziej przejrzysta indikacja postępu wykonywania operacji; ulepszona implementacja tabeli transakcji; możliwość wyjścia w raportach o zrealizowanych transakcjach informacji wydawanych przez wbudowane w pakiety skrypty (scriplets); wsparcie dla lokalnych pakietów RPM w transakcjach; bardziej zaawansowany system automatycznego uzupełniania poleceń dla bash; wsparcie dla wykonywania polecenia builddep bez instalacji Pythona w systemie.
Wśród minusów przejścia dystrybucji na Microdnf wymienia się zmianę struktury wewnętrznych baz danych oraz oddzielne przetwarzanie baz danych od DNF, co uniemożliwi widoczność transakcji z pakietami wykonanych w DNF oraz odwrotnie. Ponadto, w Microdnf nie planuje się zachować 100% zgodności z DNF na poziomie poleceń i opcji w wierszu poleceń. Również pojawią się pewne różnice w zachowaniu. Na przykład, usunięcie pakietu nie spowoduje usunięcia powiązanych z nim zależności, które nie są używane w innych pakietach.
Źródło: opennet.ru
