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

Como baixar filmes e séries da Netflix (offline)
Streaming

Como baixar filmes e séries da Netflix (offline)

Configurar /dev/sda e GRUB para RAID1 no CentOS 5.3
Linux

Configurar /dev/sda e GRUB para RAID1 no CentOS 5.3

Como ver a contagem de dislikes do YouTube
Tutoriais

Como ver a contagem de dislikes do YouTube

Como filtrar feeds RSS com Feed Rinse
Guias

Como filtrar feeds RSS com Feed Rinse

Smartphones podem hackear carros japoneses
Segurança Automotiva

Smartphones podem hackear carros japoneses

Alterar papel de parede da tela de login macOS
macOS

Alterar papel de parede da tela de login macOS