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 o 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 (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:

  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á o comando ‘deplist‘ para encontrar dependência de pacotes.
  4. 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/