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 o 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 (no momento da redação 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.
A 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 o 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, pois é recomendado ver o que está sendo instalado no seu sistema. No entanto, se isso não importar muito para você, pode usar ‘-y’ com o yum para instalar tudo automaticamente sem intervenção do usuário.
Em seguida, instale o pacote DNF usando o comando yum do repositório epel-release.
# yum install dnf
Depois de instalado com sucesso o dnf, é hora de mostrar 27 usos práticos de comandos dnf com exemplos que ajudarão você a gerenciar pacotes em distribuições baseadas em RPM de forma fácil e eficaz.
1. Verificar a Versão do DNF
Verifique a versão do DNF instalada no seu sistema.
# dnf --version
2. Listar Repositórios DNF Habilitados
A opção ‘repolist‘ com o comando dnf, exibirá todos os repositórios habilitados no seu sistema.
# dnf repolist
3. Listar todos os Repositórios DNF Habilitados e Desabilitados
A opção ‘repolist all‘ irá imprimir todos os repositórios habilitados/desabilitados no seu sistema.
# dnf repolist all
4. Listar todos os Pacotes Disponíveis e Instalados usando DNF
O comando “dnf list” irá listar todos os pacotes disponíveis de todos os repositórios e os pacotes instalados no seu sistema Linux.
# dnf list
5. Listar todos os Pacotes Instalados usando 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 você não tenha ideia do pacote que deseja instalar, em situações como essa, você pode usar a opção “search” com o comando dnf para procurar por um pacote que corresponda à palavra ou string (digamos nano).
# dnf search nano
8. Ver quais Pacotes 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ê quer saber o que fornece “/bin/bash” no seu sistema?
# dnf provides /bin/bash
9. Obter Detalhes de um Pacote usando DNF
Vamos supor que você queira saber as informações de um pacote antes de instalá-lo no sistema, você pode usar o “info” switch 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 simplesmente o comando abaixo, que irá 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 não tocado.
# dnf update systemd
12. Verifique atualizações do sistema usando o DNF
Verifique as atualizações para todos os pacotes do sistema instalados no sistema simplesmente com o comando abaixo.
# dnf check-update
13. Atualize todos os pacotes do sistema usando o DNF
Você pode atualizar todo o sistema, incluindo todos os pacotes instalados, usando os comandos abaixo.
# 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 em Cache 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 um 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 do dnf disponíveis, simplesmente digite o comando abaixo.
# dnf help
19. Verificar o Histórico do DNF
Você pode chamar o histórico do dnf para visualizar a lista de comandos dnf já executados. Desta forma, você pode ter certeza de quais pacotes foram instalados/removidos com marca de tempo.
# dnf history
20. Listar todos os Pacotes de Grupo
O comando “dnf grouplist” imprime todos os pacotes disponíveis ou instalados, se nada for mencionado, ele listará todos os grupos conhecidos.
# dnf grouplist
21. Instale um Pacote de Grupo usando o DNF
Para instalar um grupo de pacotes agrupados juntos como um pacote de grupo (digamos Software Educacional) simplesmente como.
# dnf groupinstall 'Educational Software'
22. Atualize um Pacote de Grupo
Vamos atualizar um Pacote de Grupo (digamos Software Educacional) executando o comando abaixo.
# dnf groupupdate 'Educational Software'
23. Remova um Pacote de Grupo
Podemos remover o Pacote de Grupo (digamos Software Educacional) como.
# dnf groupremove 'Educational Software'
24. Instale 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. Sincronize os Pacotes Instalados com a 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 habilitado. Se nenhum pacote for selecionado, todos os pacotes instalados serão sincronizados.
# dnf distro-sync
26. Reinstale um Pacote
O comando “dnf reinstall nano” reinstalará um pacote já instalado (digamos nano).
# dnf reinstall nano
27. Rebaixe 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
DNF é o estado superior do moderno 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á o comando ‘deplist‘ para encontrar dependência de pacotes.
- Você exclui um repositório, 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 o ecossistema Linux como um todo não estão valorizando seus usuários e estão se movendo contra a vontade deles. Também é frequentemente dito na indústria de TI – “Por que consertar, se não está quebrado?” e nem o System V init 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 nos espalhar.
Source:
https://www.tecmint.com/dnf-commands-for-fedora-rpm-package-management/