DNF, também conhecido como Dandified YUM, é um Gerenciador de Pacotes de próxima geração para Distribuições baseadas em RPM. Foi introduzido pela primeira vez no Fedora 18 e substituiu o utilitário YUM na versão mais recente do Fedora 22.
DNF tem como objetivo melhorar os gargalos do YUM, como Desempenho, Uso de Memória, Resolução de Dependências, Velocidade e muitos outros fatores. O DNF gerencia pacotes usando RPM, libsolv e a biblioteca hawkey. Embora não venha pré-instalado no CentOS e RHEL 7, você pode usar yum, dnf e usá-lo junto com o yum.
Você pode ler mais sobre o DNF aqui:
A versão estável mais recente do DNF é a 1.0 (na época da escrita deste post), que foi lançada em 11 de maio de 2015. Ela (e todas as versões anteriores do DNF) é principalmente escrita em Python e é lançada sob a Licença GPL v2.
Instalação do DNF
O DNF não está disponível no repositório padrão do RHEL/CentOS 7. No entanto, o Fedora 22 já vem com o DNF implementado oficialmente.
Para instalar DNF em sistemas RHEL/CentOS, você precisa primeiro instalar e habilitar o repositório epel-release.
# yum install epel-release OR # yum install epel-release -y
Embora não seja ético usar `-y` com o yum, já que é recomendado ver o que está sendo instalado no seu sistema. No entanto, se isso não importar muito a você, você pode usar `-y` com o yum para instalar tudo automaticamente sem a interferência do usuário.
A seguir, instale o pacote DNF usando o comando yum do repositório epel-release.
# yum install dnf
Depois que o dnf for instalado com sucesso, é hora de mostrar você 27 usos práticos de comandos dnf com exemplos que o ajudarão a gerenciar pacotes em distribuições baseadas em RPM facilmente e eficientemente.
1. Verifique a Versão do DNF
Verifique a versão do DNF instalada em seu sistema.
# dnf --version
2. Liste os Repositórios DNF habilitados
A opção `repolist` com o comando dnf, mostrará todos os repositórios habilitados em seu sistema.
# dnf repolist
3. Liste todos os Repositórios DNF habilitados e desabilitados
A opção `repolist all` imprimirá todos os repositórios habilitados/desabilitados em seu sistema.
# dnf repolist all
4. Liste todos os Pacotes Disponíveis e Instalados usando o DNF
O comando `dnf list` listará todos os pacotes disponíveis de todos os repositórios e pacotes instalados em seu sistema Linux.
# dnf list
5. Liste todos os Pacotes Instalados usando o DNF
Enquanto o comando “dnf list” mostra todos os pacotes disponíveis/instalados de todos os repositórios. No entanto, você tem a opção de listar apenas os pacotes instalados usando a opção “list installed” como mostrado abaixo.
# dnf list installed
6. Listar todos os Pacotes Disponíveis usando DNF
Similarmente, a opção “list available” listará todos os pacotes disponíveis para instalação de todos os repositórios habilitados.
# dnf list available
7. Pesquisar por um Pacote usando DNF
Caso não tenha ideia do pacote que deseja instalar, na situação você pode usar a opção “search“ com o comando dnf para procurar por pacotes que correspondem à palavra ou string (digamos nano).
# dnf search nano
8. Ver quais fornecem um arquivo/sub-pacote?
A opção de dnf “provides” encontra o nome do pacote que fornece um arquivo específico/sub-pacote. Por exemplo, se você gostaria de saber o que fornece “/bin/bash” no seu sistema?
# dnf provides /bin/bash
9. Obter Detalhes de um Pacote usando DNF
Vamos assumir que você quer saber as informações de um pacote antes de instalá-lo no sistema, você pode usar a alternativa “info” para obter informações detalhadas sobre um pacote (digamos nano) conforme abaixo.
# dnf info nano
10. Instalar um Pacote com DNF
Para instalar um pacote chamado nano, execute apenas o comando abaixo, que automaticamente resolverá e instalará todas as dependências necessárias para o pacote nano.
# dnf install nano
11. Atualizar um Pacote usando DNF
Você pode atualizar somente um pacote específico (digamos systemd) e deixar tudo no sistema inalterado.
# dnf update systemd
12. Verificar atualizações do sistema usando o DNF
Verifique as atualizações para todos os pacotes do sistema instalados no sistema com o seguinte comando simples.
# dnf check-update
13. Atualizar todos os pacotes do sistema usando o DNF
Você pode atualizar todo o sistema, incluindo todos os pacotes instalados, com os seguintes comandos.
# dnf update OR # dnf upgrade
14. Remover/Apagar um Pacote usando o DNF
Para remover ou apagar qualquer pacote não desejado (digamos nano), você pode usar o modificador “remove” ou “erase” com o comando dnf para o remover.
# dnf remove nano OR # dnf erase nano
15. Remover Pacotes Orfãos usando o DNF
esses pacotes que foram instalados para satisfazer dependências podem ser desnecessários se não forem usados por outros aplicativos. Para remover esses pacotes orfãos execute o comando abaixo.
# dnf autoremove
16. Remover Pacotes emCache usando o DNF
A lot of time we encounter out-of-date headers and unfinished transactions which results into error while executing dnf. We may clean all the cached packages and headers containing remote package information simply by executing.
# dnf clean all
17. Obter Ajuda em Comando DNF Específico
Você pode obter ajuda the um comando dnf específico (digamos clean) executando o comando abaixo.
# dnf help clean
18. Listar todos os Comandos e Opções do DNF
Para listar ajuda sobre todos os comandos e opções de dnf disponíveis, digite simplesmente.
# dnf help
19. Ver o histórico do DNF
Você pode chamar o histórico do dnf para olhar a lista de comandos dnf já executados. Dessa forma, você pode estar ciente de quais foram instalados/removidos com marca de tempo.
# dnf history
20. Listar todos os Pacotes de Grupo
O comando “dnf grouplist” irá imprimir todos os pacotes disponíveis ou instalados, se nada for mencionado, ele listará todos os grupos conhecidos.
# dnf grouplist
21. Instalar um Pacote de Grupo usando DNF
Para instalar um grupo de pacotes agrupados juntos como pacote de grupo (digamos Software Educacional) simplesmente como.
# dnf groupinstall 'Educational Software'
22. Atualizar um Pacote de Grupo
Vamos atualizar um Pacote de Grupo (digamos Software Educacional) executando o comando abaixo.
# dnf groupupdate 'Educational Software'
23. Remover um Pacote de Grupo
Podemos remover o Pacote de Grupo (digamos Software Educacional) como.
# dnf groupremove 'Educational Software'
24. Instalar um Pacote de um Repositório Específico
O DNF torna possível instalar qualquer pacote específico (digamos phpmyadmin) de um repo (epel) simplesmente como,
# dnf --enablerepo=epel install phpmyadmin
25. Sincronizar Pacotes Instalados com Versão Estável
O comando “dnf distro-sync” fornecerá opções necessárias para sincronizar todos os pacotes instalados com a versão estável mais recente disponível de qualquer repositório ativado. Se nenhum pacote for selecionado, todos os pacotes instalados são sincronizados.
# dnf distro-sync
26. Reinstalar um Pacote
O comando “dnf reinstall nano” reinstalará um pacote já instalado (digamos nano).
# dnf reinstall nano
27. Rebaixar um Pacote
A opção “downgrade” rebaixará o pacote nomeado (digamos acpid) para uma versão inferior, se possível.
# dnf downgrade acpid
Saída de Exemplo
Using metadata from Wed May 20 12:44:59 2015 No match for available package: acpid-2.0.19-5.el7.x86_64 Error: Nothing to do.
Minha observação: O DNF não rebaixou o pacote como deveria. Isso também foi relatado como um bug.
Conclusão
O DNF é o estado mais avançado do gerenciador de pacotes YUM. Ele tende a fazer muito processamento automaticamente, o que não será elogiado por muitos administradores de sistema Linux experientes, na minha opinião. Como exemplo:
--skip-broken
não é reconhecido pelo DNF e não há alternativa.- Não há nada como o comando ‘resolvedep‘, no entanto, você pode executar dnf provides.
- Não há comando ‘deplist‘ para encontrar dependências de pacotes.
- Você exclui um repositório, o que significa que a exclusão se aplica a todas as operações, ao contrário do yum, que exclui esses repositórios apenas no momento da instalação e atualizações, etc.
Vários usuários de Linux não estão satisfeitos com a forma como o ecossistema Linux está se movendo. Primeiro o Systemd removeu o sistema init v e agora o DNF substituirá o YUM em breve no Fedora 22 e posteriormente no RHEL e CentOS.
O que você acha? As distribuições e todo o ecossistema Linux não estão valorizando seus usuários e indo contra a vontade deles. Também é frequentemente dito na indústria de TI – “Por que consertar, se não está quebrado?”, e nem o sistema init System V está quebrado, nem o YUM.
Isso é tudo por enquanto. Por favor, deixe-me saber seus pensamentos valiosos nos comentários abaixo. Curta e compartilhe conosco e nos ajude a divulgar.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/