Gerenciamento de Pacotes com dnf - Ferramenta Moderna para Sistemas Fedora e RHEL

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.

Próximas Leituras