O Comitê FESCo (Fedora Engineering Steering Committee), responsável pela parte técnica do desenvolvimento da distribuição Fedora Linux, aprovou a utilização do gerenciador de pacotes DNF5 por padrão na versão de outono do Fedora 41. Os pacotes dnf, libdnf e dnf-cutomatic serão substituídos no Fedora 41 pelo conjunto de ferramentas DNF5 e pela nova biblioteca libdnf5, enquanto o link simbólico /usr/bin/dnf começará a apontar para o executável dnf5.
Apesar de o parité completo em funcionalidade com a antiga ferramenta ainda não ter sido alcançado, os desenvolvedores acreditam que a distribuição está pronta para a migração, e as funcionalidades em falta podem ser implementadas posteriormente. Por exemplo, a funcionalidade relacionada ao gerenciamento do histórico de transações, que está na base do comando 'dnf history', ainda está indisponível. O suporte à execução em segundo plano do dnf5daemon no gerenciador de aplicativos GNOME Software também não foi totalmente concluído. O mecanismo para atualização do sistema inteiro para a próxima versão (comando system-upgrade) requer testes adicionais.
O DNF surgiu na distribuição como substituto do gerenciador de pacotes Yum, que era totalmente escrito em Python. No DNF, as funções de baixo nível exigentes em desempenho foram reescritas e extraídas para bibliotecas em C como hawkey, librepo, libsolv e libcomps, mas a estrutura e os componentes de nível superior permaneceram em Python. O projeto DNF5 visa unificar as bibliotecas de baixo nível existentes, reescrever os componentes de gerenciamento de pacotes que ainda estão em Python para C++ e separar a funcionalidade básica em uma biblioteca distinta, libdnf5, criando em torno dessa biblioteca uma interface 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
