Gerenciamento de Pacotes com dnf - Ferramenta Moderna para Sistemas Fedora e RHEL
O Que Você Vai Aprender
- Operações 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 não disponível no yum
Resumo Rápido
- Instalar:
sudo dnf install [pacote] - Atualizar tudo:
sudo dnf update - Remover:
sudo dnf remove [pacote] - Rollback:
sudo dnf history undo [id]
O Que é o dnf?
dnf (Dandified YUM) é o sucessor do yum, o gerenciador de pacotes padrão desde o Fedora 22 e RHEL 8 / CentOS 8. Ele resolve dependências mais rápido e usa menos memória que o yum.
Distribuições suportadas: Fedora / RHEL 8+ / CentOS 8+ / AlmaLinux / Rocky Linux / Oracle Linux
Não serve para Ubuntu/Debian
Ubuntu e sistemas baseados em Debian usam apt, não dnf. O dnf é exclusivo para distribuições baseadas em RPM.
Veja o artigo básico de apt/yum
Instalando e Removendo Pacotes
As operações mais fundamentais do dnf.
Instalar um pacote
sudo dnf install vim
Instalar múltiplos 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 também remove pacotes que dependem do alvo. Use --no-autoremove para remover apenas o pacote especificado sem efeito cascata.
Remover dependências orfas:
sudo dnf autoremove
Atualizando Pacotes
Atualizações regulares são essenciais para a segurança.
Atualizar todos os pacotes
sudo dnf update
dnf upgrade é um alias para dnf update -- ambos se comportam de forma idêntica.
Atualizar um pacote específico
sudo dnf update vim
Aplicar apenas atualizações de segurança
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 descrições de pacotes:
dnf search all nginx
Ver informações detalhadas do pacote
dnf info nginx
Mostra versão, arquitetura, tamanho, repositório e descrição.
Listar pacotes instalados
dnf list installed
Listar todos os pacotes disponíveis (incluindo os não instalados):
dnf list available
Verificar o status de um pacote específico:
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 disponíveis
dnf group list
Instalar um grupo
sudo dnf group install "Development Tools"
Ver conteúdo de um grupo
dnf group info "Development Tools"
Gerenciando Repositórios
Como gerenciar fontes de pacotes.
Listar repositórios habilitados
dnf repolist
Incluir repositórios desabilitados:
dnf repolist --all
Adicionar o repositório EPEL (RHEL/CentOS)
sudo dnf install epel-release
Desabilitar temporariamente um repositório para uma instalação
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
Histórico e Rollback
Um dos recursos mais poderosos do dnf: histórico completo de operações com suporte a rollback.
Ver histórico de operações
dnf history
Inspecionar uma operação específica
dnf history info 5
Desfazer uma operação
sudo dnf history undo 5
Se uma atualização do sistema causar problemas, dnf history undo restaura o estado anterior -- invaluavel em ambientes de produção.
Module Streams
Module streams são um recurso exclusivo do dnf que permite instalar e alternar entre múltiplas versões do mesmo software.
Listar módulos disponíveis
dnf module list
Ver detalhes de um módulo
dnf module info nodejs
Habilitar uma versão específica 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
Após alternar module streams, sempre execute dnf distro-sync para realinhar as versões dos pacotes com o novo stream.
dnf vs yum
| Operação | yum | dnf |
|---|---|---|
| Instalar | yum install |
dnf install |
| Remover | yum remove |
dnf remove |
| Atualizar | yum update |
dnf update |
| Buscar | yum search |
dnf search |
| Remover órfãos | yum autoremove |
dnf autoremove |
| Gerenciamento de módulos | Não suportado | dnf module |
| Rollback | Limitado | dnf history undo |
No RHEL 8+, o comando yum é um shim de compatibilidade que chama o dnf por baixo. Os comandos são intercambiáveis, mas o dnf oferece mais recursos e melhor desempenho.