No lançamento do Fedora 41, foi proposto que a distribuição padrão fosse migrada para o gerenciador de pacotes DNF5. Inicialmente, a transição para o DNF5 estava prevista para o lançamento do Fedora 39, mas a migração foi adiada devido à falta de prontidão das ferramentas. Apesar de ainda não se ter alcançado a paridade total em funcionalidade com a ferramenta antiga, os desenvolvedores acreditam que a distribuição está pronta para a migração, e as funcionalidades ausentes podem ser implementadas posteriormente. A proposta ainda não foi analisada pelo comitê FESCo (Fedora Engineering Steering Committee), responsável pela parte técnica do desenvolvimento da distribuição Fedora. Se a proposta for aprovada, os pacotes dnf, libdnf e dnf-cutomatic serão substituídos pelas ferramentas DNF5 e pela nova biblioteca libdnf5, e o link simbólico /usr/bin/dnf começará a apontar para o executável dnf5.
Na época, o DNF substituiu o gerenciador de pacotes Yum na distribuição, que foi inteiramente escrito em Python. No DNF, funções de baixo nível exigentes em desempenho foram reescritas e separadas em bibliotecas C chamadas hawkey, librepo, libsolv e libcomps, mas a estrutura e os componentes de alto nível permaneceram em Python. O projeto DNF5 tem como objetivo unificar as bibliotecas de baixo nível existentes, reescrever os componentes de gerenciamento de pacotes que ainda estão em Python na linguagem C++, e extrair a funcionalidade básica para uma biblioteca separada libdnf5, criando uma camada em torno dessa biblioteca para manter a API Python.
O uso da linguagem C++ em vez de Python permitiu eliminar um grande número de dependências, reduzir o tamanho do conjunto de ferramentas e aumentar o desempenho. Um desempenho maior é alcançado não apenas pela compilação em código de máquina, mas também devido à implementação aprimorada da tabela de transações, otimização do carregamento de repositórios e reestruturação do banco de dados (separados os bancos de dados com o estado do sistema e o histórico de operações). O conjunto de ferramentas DNF5 foi desassociado do PackageKit, sendo substituído por um novo processo de segundo plano, o DNF Daemon, que substitui a funcionalidade do PackageKit e oferece uma interface para gerenciamento de pacotes e atualizações em ambientes gráficos.
A reestruturação também permitiu implementar algumas melhorias que aumentam a facilidade de uso do gerenciador de pacotes. Por exemplo, no novo DNF, foi introduzida uma indicação de progresso mais clara durante a execução de operações; foi adicionado suporte para o uso de pacotes RPM locais em transações; foi incorporada a possibilidade de exibir nos relatórios de transações executadas informações fornecidas pelos scripts embutidos nos pacotes (scriplets); foi proposta uma sistema de autocompletação de entrada mais avançado para bash.
Fonte: opennet.ru
