Pular para o conteúdo principal

Capítulo 10.2 - yum/dnf (Red Hat/CentOS)

Objetivos de Aprendizagem​

Ao final deste capítulo, você será capaz de:

  • Utilizar yum e dnf para instalar pacotes
  • Atualizar o sistema
  • Gerenciar repositórios
  • Entender grupos de pacotes
  • Utilizar transações

yum vs dnf​

yum (Clássico)​

Yellowdog Updater Modified:

  • Red Hat/CentOS 7 e anteriores
  • Ainda disponível
  • Interface clássica

dnf (Moderno)​

Dandified YUM:

  • Red Hat/CentOS 8+ e Fedora
  • Sucessor do yum
  • Mais rápido e moderno
  • Mesma sintaxe do yum

Nota: yum é frequentemente um alias para dnf em sistemas recentes.


Comandos Básicos​

Atualização​

# Atualizar lista de pacotes
sudo yum check-update
sudo dnf check-update

# Atualizar pacotes
sudo yum update
sudo dnf upgrade

# Atualizar pacote específico
sudo yum update nome-pacote
sudo dnf upgrade nome-pacote

Instalação​

# Instalar pacote
sudo yum install nome-pacote
sudo dnf install nome-pacote

# Instalar múltiplos pacotes
sudo yum install pacote1 pacote2 pacote3

# Instalar sem confirmação
sudo yum install -y nome-pacote

# Instalar a partir de arquivo .rpm
sudo yum localinstall arquivo.rpm

Remoção​

# Remover pacote
sudo yum remove nome-pacote
sudo dnf remove nome-pacote

# Remover pacote e dependências
sudo yum autoremove nome-pacote

# Limpar cache
sudo yum clean all
sudo dnf clean all

Pesquisa e Informação​

Pesquisar​

# Pesquisar pacote
yum search palavra-chave
dnf search palavra-chave

# Pesquisar por nome
yum list nome-pacote
dnf list nome-pacote

# Informações do pacote
yum info nome-pacote
dnf info nome-pacote

# Listar pacotes instalados
yum list installed
dnf list installed

# Listar pacotes disponíveis
yum list available
dnf list available

Informações​

# Informações detalhadas
yum info nome-pacote

# Dependências
yum deplist nome-pacote
dnf repoquery --deplist nome-pacote

# Conteúdo do pacote
rpm -ql nome-pacote

Repositórios​

Ver Repositórios​

# Listar repositórios habilitados
yum repolist
dnf repolist

# Todos os repositórios
yum repolist all
dnf repolist all

# Informações do repositório
yum repoinfo nome-repo
dnf repoinfo nome-repo

Adicionar Repositório​

# Instalar repositório RPM
sudo yum install epel-release
sudo dnf install epel-release

# Adicionar repositório manualmente
# Criar arquivo: /etc/yum.repos.d/meu-repo.repo

[meu-repo]
name=Meu Repositório
baseurl=http://repo.example.com/rhel/$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.example.com/RPM-GPG-KEY

# Recarregar
sudo yum makecache
sudo dnf makecache

EPEL (Extra Packages)​

# Instalar EPEL
sudo yum install epel-release
sudo dnf install epel-release

# Verificar
yum repolist | grep epel

Grupos de Pacotes​

Gerenciamento de Grupos​

# Listar grupos disponíveis
yum grouplist
dnf group list

# Informações do grupo
yum groupinfo "Development Tools"
dnf group info "Development Tools"

# Instalar grupo
sudo yum groupinstall "Development Tools"
sudo dnf group install "Development Tools"

# Remover grupo
sudo yum groupremove "Development Tools"

Transações e Histórico​

Histórico​

# Ver histórico
yum history
dnf history

# Ver transação específica
yum history info 5
dnf history info 5

# Desfazer transação
sudo yum history undo 5
sudo dnf history undo 5

# Repetir transação
sudo yum history redo 5

Exemplos Práticos​

Instalação Completa​

# Atualizar
sudo yum check-update

# Instalar pacote
sudo yum install httpd

# Iniciar serviço
sudo systemctl start httpd
sudo systemctl enable httpd

# Verificar
systemctl status httpd

Atualização do Sistema​

#!/bin/bash
# Script de atualização

echo "Verificando atualizações..."
sudo yum check-update

echo "Atualizando pacotes..."
sudo yum update -y

echo "Limpando..."
sudo yum clean all

echo "Finalizado!"

Resolução de Problemas​

Dependências​

# Resolver dependências
sudo yum deplist nome-pacote

# Forçar instalação
sudo rpm -ivh --nodeps pacote.rpm # Atenção!

Cache​

# Limpar cache
sudo yum clean all
sudo yum clean metadata
sudo yum clean packages

# Reconstruir cache
sudo yum makecache

Resumo​

Neste capítulo, você aprendeu:

yum/dnf: Gerenciadores de pacotes Red Hat/CentOS/Fedora
Comandos: install, update, remove, search, info
Repositórios: repolist, epel-release, arquivos .repo
Grupos: grouplist, groupinstall
Histórico: history, undo, redo
Prática: Instalação, atualização, manutenção


Próximos Passos​

Capítulo 10.3: Compilação a partir do código-fonte
Módulo 11: Monitoramento e Logs


Capítulo criado em: Dezembro de 2024