Como listar, ativar, desativar e adicionar repositórios yum e dnf no AlmaLinux e no Rocky, instalar o EPEL com CRB ou PowerTools e criar um arquivo .repo.
Um repositório é um endereço de onde o gerenciador de pacotes baixa programas e atualizações. Cada repositório é descrito num arquivo .repo dentro de /etc/yum.repos.d/. No AlmaLinux e no Rocky 8 e 9, o gerenciador é o dnf; o comando yum continua existindo como atalho para ele, então todos os comandos abaixo funcionam trocando dnf por yum.
Antes de começar
- Acesso SSH como
rootou comsudo. - Os comandos
dnf config-managervêm do pacotednf-plugins-core. Se aparecerNo such command: config-manager, instale comsudo dnf install dnf-plugins-core.
Como listar os repositórios
dnf repolist
dnf repolist all
dnf repoinfo epel
O primeiro lista os repositórios ativos; o segundo inclui os desativados, com a coluna de status; o terceiro mostra os detalhes de um repositório (endereço, quantidade de pacotes, data de atualização). Os principais repositórios oficiais são:
| ID | Conteúdo |
|---|---|
baseos | Base do sistema |
appstream | Aplicativos, linguagens e bancos de dados |
extras | Pacotes extras, como o epel-release |
crb (versão 9) ou powertools (versão 8) | Bibliotecas de desenvolvimento usadas por muitos pacotes do EPEL; vem desativado |
Como instalar o EPEL
O EPEL é o repositório extra mais usado, mantido pelo projeto Fedora. Ele traz programas como htop, ncdu e fail2ban. A maioria dos pacotes dele depende do CRB (ou do PowerTools), então ative os dois juntos:
# AlmaLinux e Rocky 9
sudo dnf config-manager --set-enabled crb
sudo dnf install epel-release
# AlmaLinux e Rocky 8
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release
Confira com dnf repolist: devem aparecer epel e crb (ou powertools).
Como ativar e desativar um repositório
De forma permanente:
sudo dnf config-manager --set-enabled nome-do-repo
sudo dnf config-manager --set-disabled nome-do-repo
Só para um comando, sem mudar a configuração:
sudo dnf --enablerepo=epel-testing install pacote
sudo dnf --disablerepo=epel upgrade
Para ver só os pacotes de um repositório, use dnf --repo=epel list available.
Como adicionar um repositório
Quem distribui o software normalmente oferece um pacote -release ou um arquivo .repo pronto. Com o arquivo, basta:
sudo dnf config-manager --add-repo https://exemplo.com.br/meurepo.repo
Para escrever o arquivo à mão, crie /etc/yum.repos.d/meurepo.repo:
[meurepo]
name=Meu repositório
baseurl=https://repo.exemplo.com.br/el$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.exemplo.com.br/RPM-GPG-KEY-meurepo
| Opção | Para que serve |
|---|---|
[meurepo] | ID único, usado nos comandos --enablerepo e --set-enabled |
baseurl | Endereço da pasta com o repodata. Aceita https:// e file:/// (repositório local). O dnf troca $releasever pela versão do sistema e $basearch pela arquitetura |
enabled | 1 ativo, 0 desativado |
gpgcheck e gpgkey | Confere a assinatura dos pacotes com a chave indicada. Deixe sempre em 1 |
priority | Opcional. Número menor ganha quando dois repositórios têm o mesmo pacote (o padrão é 99) |
excludepkgs | Opcional. Pacotes que nunca devem vir deste repositório, como excludepkgs=php* |
Depois de criar ou alterar um arquivo, atualize o cache:
sudo dnf clean all
sudo dnf makecache
Outros repositórios conhecidos
- ELRepo: drivers de hardware e kernels alternativos. Use só se o kernel padrão não reconhecer o hardware.
- Remi: várias versões do PHP para servidores sem painel.
- RPMForge (RepoForge): abandonado há anos. Se algum tutorial pedir, procure outra fonte.
htop, costuma ser seguro.E no CentOS 6 e 7?
Os repositórios oficiais foram desligados depois do fim do suporte (30/11/2020 para o CentOS 6 e 30/06/2024 para o CentOS 7), por isso o yum falha. Os pacotes antigos ficam guardados em vault.centos.org, e o AlmaLinux mantém uma cópia do CentOS 7 para quem precisa migrar:
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://el7.repo.almalinux.org/centos/CentOS-Base.repo
Isso só serve para conseguir instalar o que falta antes da migração: nenhum desses pacotes recebe correção. Veja como migrar do CentOS 7 para o AlmaLinux com o ELevate.
Problemas comuns
Could not resolve host: mirrorlist.centos.org
O servidor é CentOS 7 ou mais antigo e ainda aponta para os espelhos desligados. Veja a seção acima.
Error: Failed to download metadata for repo
O endereço do repositório está errado, fora do ar ou bloqueado pelo firewall de saída. Rode dnf repolist -v para ver o endereço de cada um e desative o que estiver quebrado com --set-disabled.
GPG check FAILED ou Public key is not installed
Falta importar a chave do repositório. Importe com sudo rpm --import seguido do endereço da chave, tirado da documentação oficial do repositório. Não desligue o gpgcheck para contornar.
Pacote do EPEL pede dependência que não existe
Falta ativar o CRB (versão 9) ou o PowerTools (versão 8), como mostrado na instalação do EPEL.