Guia de tecnologias

Como configurar um repositório Yum local no Fedora 8

5 min read Linux Atualizado 10 Oct 2025
Configurar repositório Yum local no Fedora 8
Configurar repositório Yum local no Fedora 8

TL;DR

Crie um espelho local do Fedora 8 para economizar largura de banda e acelerar instalações via LAN. Instale Apache e createrepo, copie ou sincronize os pacotes para /var/www/html/yum, gere metadados com createrepo e aponte os clientes para o baseurl HTTP do servidor. Automatize atualizações com rsync + cron.

Versão e autor

Versão 1.0
Autor: Falko Timme

1 Nota preliminar

Neste tutorial uso o nome de host server1.example.com com o endereço IP 192.168.0.100. Substitua esses valores conforme necessário. Pretendo disponibilizar o repositório via HTTP; a raiz de documentos padrão do Apache no Fedora é /var/www/html, por isso criarei o repositório em /var/www/html/yum. Se você usa outro VirtualHost, ajuste os caminhos.

Definição rápida: Yum é o gerenciador de pacotes do Fedora/RHEL; createrepo gera os metadados que permitem ao yum entender o repositório.

2 Instalando o Apache

Instale o Apache com:

yum install httpd

Crie os links de inicialização para que o Apache inicie com o sistema:

chkconfig --levels 235 httpd on

Inicie o Apache:

/etc/init.d/httpd start

Importante: Fedora 8 usa SysV init; em distribuições modernas use systemctl. Mantenha os comandos originais se estiver trabalhando em sistemas legados.

3 Construindo o repositório

Instale a ferramenta createrepo:

yum install createrepo

Decidi colocar os pacotes i386 em /var/www/html/yum/base/8/i386 e atualizações em /var/www/html/yum/updates/8/i386. Crie os diretórios (ajuste para x86_64 ou outras versões se necessário):

mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386

Agora preencha /var/www/html/yum/base/8/i386. A maneira mais simples é inserir o DVD do Fedora 8 (baixe de http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8), montar e copiar os rpms:

mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt

O DVD contém apenas um conjunto básico de pacotes. Para ter todos os pacotes do Fedora 8, use rsync a partir de um mirror Everything (isto pode demorar):

rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386

(Verifique as barras finais conforme mostrado acima.)

Depois execute createrepo:

createrepo /var/www/html/yum/base/8/i386

Isso criará um diretório repodata em /var/www/html/yum/base/8/i386. Exemplo de listagem esperada:

ls -l /var/www/html/yum/base/8/i386/repodata/
[root@server1 /]# ls -l /var/www/html/yum/base/8/i386/repodata/
total 9268
-rw-r--r-- 1 root root 2227275 2007-12-18 21:11 filelists.xml.gz
-rw-r--r-- 1 root root 6487453 2007-12-18 21:11 other.xml.gz
-rw-r--r-- 1 root root  747714 2007-12-18 21:11 primary.xml.gz
-rw-r--r-- 1 root root     951 2007-12-18 21:11 repomd.xml
[root@server1 /]#

Agora preencha a pasta de atualizações /var/www/html/yum/updates/8/i386; escolha um mirror que ofereça rsync e sincronize:

rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386

Automatizando atualizações com cron
Para sincronizar as atualizações a cada dois dias às 04:23, adicione um job cron:

crontab -e

Adicione a linha:

23 4 */2 * * /usr/bin/rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386

Nota: Ajuste o mirror rsync para um servidor de sua preferência/país; evite sobrecarregar mirrors pequenos.

4 Configuração dos clientes

Em cada sistema Fedora 8 aponte o yum para o repositório local editando /etc/yum.conf (pode ser feito no próprio mirror):

vi /etc/yum.conf

Localize a área de repositórios e adicione estas entradas abaixo das linhas indicadas:

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

Adicione:

[base-local]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://192.168.0.100/yum/base/$releasever/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0

[updates-local]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=0

Arquivo /etc/yum.conf completo (exemplo):

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
metadata_expire=1800
installonly_limit=2

# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

[base-local]
name=Fedora $releasever - $basearch
failovermethod=priority
baseurl=http://192.168.0.100/yum/base/$releasever/$basearch
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
enabled=1
gpgcheck=0

[updates-local]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
baseurl=http://192.168.0.100/yum/updates/$releasever/$basearch/
#mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=0

A partir daí, quando o yum pedir um pacote disponível no repositório local, ele será baixado via LAN.

Abordagens alternativas

  • Servir o repositório via NFS/HTTP combinado: copiar arquivos em um servidor de arquivos e expor via NFS; útil se já tiver infraestrutura de arquivos centralizados.
  • Usar ferramentas de proxy de pacotes (por exemplo, squid + cache de pacotes) para armazenar pacotes à medida que são baixados, sem manter um espelho completo.
  • Para versões modernas do Fedora/RHEL, considere DNF e cobbler/pungi ou um repositório gerenciado via Pulp/Foreman para controle mais fino.

Quando isso pode falhar (problemas comuns e soluções)

  • Permissões incorretas: certifique-se de que o Apache pode ler /var/www/html/yum/* (www-data ou apache como proprietário/grupo conforme a distro).
  • Metadados desatualizados: sempre execute createrepo após alterações manuais nos rpms; para muitos arquivos use createrepo –update.
  • Mirror rsync indisponível: escolha um mirror diferente ou mantenha uma cópia local inicial para evitar dependência contínua.
  • Clientes com gpgcheck=1: se quiser validar assinaturas, não desative gpgcheck; importe a chave GPG do Fedora e mantenha gpgcheck=1.

Checklist por função

  • Administrador de sistema (mirror):
    • Instalar httpd e createrepo
    • Criar diretórios /var/www/html/yum/base/ e /var/www/html/yum/updates/
    • Copiar ou rsync dos pacotes
    • Executar createrepo e verificar repodata
    • Criar cron de rsync e testar execução manual
    • Configurar firewall para permitir HTTP
  • Administrador de cliente:
    • Atualizar /etc/yum.conf ou adicionar .repo apontando para o servidor
    • Testar yum clean all; yum repolist
    • Instalar pacote de teste (por exemplo, vim) e confirmar download via LAN

Cheat sheet de comandos

  • Instalar Apache: yum install httpd
  • Habilitar no boot: chkconfig –levels 235 httpd on
  • Iniciar Apache: /etc/init.d/httpd start
  • Instalar createrepo: yum install createrepo
  • Gerar metadados: createrepo /caminho/do/repositorio
  • Sincronizar pacotes via rsync: rsync -avrt rsync://mirror/path/ /var/www/html/yum/base/8/i386
  • Cron exemplo: 23 4 /2 * rsync -avrt rsync://… /var/www/html/yum/updates/8/i386

Segurança e boas práticas

  • Sempre prefira habilitar gpgcheck e importar a chave GPG oficial do Fedora para verificar pacotes.
  • Use firewall para limitar acesso ao servidor de repositório apenas à rede interna.
  • Se o repositório for exposto externamente, considere HTTPS e certificados válidos.

Nota sobre versões modernas

Fedora 8 é muito antigo; em sistemas atuais substitua yum por dnf e adapte comandos de init para systemd (systemctl enable –now httpd). Para repositórios corporativos, ferramentas como Pulp, Satellite ou Nexus/Artifactory fornecem recursos avançados.

Links

Resumo

  • Crie diretórios sob /var/www/html/yum, copie ou sincronize pacotes e gere metadados com createrepo.
  • Configure clientes para apontarem ao baseurl HTTP do servidor.
  • Mantenha o repositório atualizado com rsync automatizado via cron e habilite verificações GPG quando possível.

Resumo executivo: Um repositório yum local reduz tráfego de internet e acelera instalações em redes internas; a configuração básica é direta e pode ser automatizada.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE