Gerenciamento de Pacotes com dnf - Ferramenta Moderna para Sistemas Fedora e RHEL
O Que Voce Vai Aprender
- Operacoes essenciais do dnf para sistemas Fedora e baseados em RHEL
- Por que o dnf substituiu o yum e o que mudou
- Como usar module streams, um recurso exclusivo do dnf nao disponivel no yum
Resumo Rapido
- Instalar:
sudo dnf install [pacote] - Atualizar tudo:
sudo dnf update - Remover:
sudo dnf remove [pacote] - Rollback:
sudo dnf history undo [id]
O Que e o dnf?
dnf (Dandified YUM) e o sucessor do yum, o gerenciador de pacotes padrao desde o Fedora 22 e RHEL 8 / CentOS 8. Ele resolve dependencias mais rapido e usa menos memoria que o yum.
Distribuicoes suportadas: Fedora / RHEL 8+ / CentOS 8+ / AlmaLinux / Rocky Linux / Oracle Linux
Nao serve para Ubuntu/Debian
Ubuntu e sistemas baseados em Debian usam apt, nao dnf. O dnf e exclusivo para distribuicoes baseadas em RPM.
Veja o artigo basico de apt/yum
Instalando e Removendo Pacotes
As operacoes mais fundamentais do dnf.
Instalar um pacote
sudo dnf install vim
Instalar multiplos pacotes de uma vez:
sudo dnf install vim git curl
Instalar a partir de um arquivo RPM local:
sudo dnf install ./package.rpm
Remover um pacote
sudo dnf remove vim
remove tambem remove pacotes que dependem do alvo. Use --no-autoremove para remover apenas o pacote especificado sem efeito cascata.
Remover dependencias orfas:
sudo dnf autoremove
Atualizando Pacotes
Atualizacoes regulares sao essenciais para a seguranca.
Atualizar todos os pacotes
sudo dnf update
dnf upgrade e um alias para dnf update -- ambos se comportam de forma identica.
Atualizar um pacote especifico
sudo dnf update vim
Aplicar apenas atualizacoes de seguranca
sudo dnf update --security
Verificar o que seria atualizado (sem aplicar)
dnf check-update
Buscando e Inspecionando Pacotes
Como investigar pacotes antes de instalar.
Buscar por palavra-chave
dnf search nginx
Buscar em nomes e descricoes de pacotes:
dnf search all nginx
Ver informacoes detalhadas do pacote
dnf info nginx
Mostra versao, arquitetura, tamanho, repositorio e descricao.
Listar pacotes instalados
dnf list installed
Listar todos os pacotes disponiveis (incluindo os nao instalados):
dnf list available
Verificar o status de um pacote especifico:
dnf list vim
Descobrir qual pacote fornece um comando
dnf provides /usr/bin/vim
Gerenciando Grupos de Pacotes
Grupos permitem instalar pacotes relacionados em conjunto.
Listar grupos disponiveis
dnf group list
Instalar um grupo
sudo dnf group install "Development Tools"
Ver conteudo de um grupo
dnf group info "Development Tools"
Gerenciando Repositorios
Como gerenciar fontes de pacotes.
Listar repositorios habilitados
dnf repolist
Incluir repositorios desabilitados:
dnf repolist --all
Adicionar o repositorio EPEL (RHEL/CentOS)
sudo dnf install epel-release
Desabilitar temporariamente um repositorio para uma instalacao
sudo dnf install [pacote] --disablerepo=epel
Gerenciando o Cache de Pacotes
Mantenha o uso de disco sob controle gerenciando o cache de downloads.
sudo dnf clean all
Atualizar a lista de pacotes sem descartar o cache:
sudo dnf makecache
Historico e Rollback
Um dos recursos mais poderosos do dnf: historico completo de operacoes com suporte a rollback.
Ver historico de operacoes
dnf history
Inspecionar uma operacao especifica
dnf history info 5
Desfazer uma operacao
sudo dnf history undo 5
Se uma atualizacao do sistema causar problemas, dnf history undo restaura o estado anterior -- invaluavel em ambientes de producao.
Module Streams
Module streams sao um recurso exclusivo do dnf que permite instalar e alternar entre multiplas versoes do mesmo software.
Listar modulos disponiveis
dnf module list
Ver detalhes de um modulo
dnf module info nodejs
Habilitar uma versao especifica e instalar
sudo dnf module enable nodejs:18 sudo dnf install nodejs
Alternar para um stream diferente
sudo dnf module reset nodejs sudo dnf module enable nodejs:20 sudo dnf distro-sync
Apos alternar module streams, sempre execute dnf distro-sync para realinhar as versoes dos pacotes com o novo stream.
dnf vs yum
| Operacao | yum | dnf |
|---|---|---|
| Instalar | yum install |
dnf install |
| Remover | yum remove |
dnf remove |
| Atualizar | yum update |
dnf update |
| Buscar | yum search |
dnf search |
| Remover orfaos | yum autoremove |
dnf autoremove |
| Gerenciamento de modulos | Nao suportado | dnf module |
| Rollback | Limitado | dnf history undo |
No RHEL 8+, o comando yum e um shim de compatibilidade que chama o dnf por baixo. Os comandos sao intercambiaveis, mas o dnf oferece mais recursos e melhor desempenho.