27 Comandos ‘DNF’ (Fork do Yum) para Gerenciamento de Pacotes RPM no Linux

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:

  1. Motivos para Substituir o Yum pelo DNF

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:

  1. --skip-broken não é reconhecido pelo DNF e não há alternativa.
  2. Não há nada como o comando ‘resolvedep‘, no entanto, você pode executar dnf provides.
  3. Não há comando ‘deplist‘ para encontrar dependências de pacotes.
  4. 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/