Crear un repositorio yum local en Fedora 8
Introducción
Tener un espejo (mirror) de Fedora en la red local es útil cuando necesitas instalar o actualizar varias máquinas. Los paquetes se descargan por la red local (LAN) a alta velocidad, lo que reduce el uso de la conexión a Internet.
Definición breve: yum es el gestor de paquetes tradicional de Fedora; createrepo genera la metadata que yum necesita; rsync permite sincronizar paquetes desde un espejo público.
Importante: no se garantiza que los ejemplos de este documento funcionen sin ajustes en tu entorno. Ajusta nombres de host, IPs y rutas según necesites.
1 Nota preliminar
En esta guía se usa el nombre de host server1.example.com y la IP 192.168.0.100 como ejemplos. Sustituye estos valores por los de tu entorno cuando sea necesario.
La intención es servir el repositorio por HTTP. En Fedora, la raíz pública de Apache suele ser /var/www/html, por eso crearemos el repositorio en /var/www/html/yum. Si usas un virtualhost distinto cambia las rutas correspondientes.
2 Instalar Apache
Instala Apache con yum:
yum install httpd
Crea los enlaces para iniciar Apache automáticamente al arrancar el sistema:
chkconfig --levels 235 httpd on
Inicia Apache ahora:
/etc/init.d/httpd start
Nota: si tu sistema usa systemd en lugar de scripts SysV, usarías systemctl enable –now httpd. Fedora 8 usa los scripts mostrados arriba.
3 Construir el repositorio
Instala createrepo:
yum install createrepo
Creamos las rutas para los paquetes i386 de Fedora 8 (ajusta si necesitas x86_64 u otra versión):
mkdir -p /var/www/html/yum/base/8/i386
mkdir -p /var/www/html/yum/updates/8/i386
Rellenar /var/www/html/yum/base/8/i386
La forma más rápida es copiar los RPM desde el DVD de Fedora 8. Monta el DVD y copia el contenido:
mount /dev/cdrom /mnt
cd /mnt/Packages
cp -v * /var/www/html/yum/base/8/i386
cd /
umount /mnt
Si quieres toda la colección “Everything” de Fedora 8 (mucho más grande), usa rsync desde un espejo que ofrezca rsync. Busca un espejo en:
http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8
Ejemplo de rsync (esto puede tardar):
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/releases/8/Everything/i386/os/Packages/ /var/www/html/yum/base/8/i386
Asegúrate de usar las barras finales (/) como se muestra. Tras copiar los paquetes, genera la metadata con createrepo:
createrepo /var/www/html/yum/base/8/i386
Esto crea un directorio repodata dentro de /var/www/html/yum/base/8/i386. Puedes comprobarlo:
ls -l /var/www/html/yum/base/8/i386/repodata/
Salida esperada (ejemplo):
[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 /]#
Rellenar /var/www/html/yum/updates/8/i386
Descarga las actualizaciones con rsync desde un espejo que ofrezca este servicio. Ejemplo:
rsync -avrt rsync://ftp-stud.hs-esslingen.de/fedora/linux/updates/8/i386/ --exclude=debug/ /var/www/html/yum/updates/8/i386
Automatizar las actualizaciones con cron
Puedes crear una tarea cron para sincronizar las actualizaciones periódicamente. Por ejemplo, para descargar actualizaciones cada dos días a las 04:23:
Abre el crontab del usuario root:
crontab -e
Añade la línea siguiente al crontab:
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
Con esto, tu espejo local se mantendrá sincronizado automáticamente.
4 Configuración del cliente
Para que los sistemas Fedora 8 usen el repositorio local, modifica /etc/yum.conf en cada cliente (o en el espejo si el espejo es también un cliente):
Edita el archivo:
vi /etc/yum.conf
Localiza estas líneas (comentario donde colocar repos):
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
Añade debajo los siguientes bloques que apuntan a tu servidor local (ajusta la IP si usas otra):
[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
El archivo completo debería verse así (ejemplo):
[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 de ahora, cuando uses yum en los clientes, yum obtendrá paquetes desde el espejo local si están disponibles.
Alternativas y enfoques modernos
- Usar reposync (paquete yum-utils) para sincronizar paquetes y metadata en lugar de rsync directo.
- Usar herramientas de gestión de repositorios como Pulp o Spacewalk para control más avanzado, control de versiones y gestión de ciclos de vida.
- Con sistemas modernos de Fedora (DNF), la metodología es similar pero adaptando herramientas y rutas.
Cuando usar cada opción: rsync es sencillo y fiable para un espejo estático. reposync es más fino para replicar repos específicos. Pulp/Spacewalk añaden gestión y más control para entornos grandes.
Lista de verificación para el administrador (role-based)
- Confirmar espacio en disco suficiente para los paquetes (varios GB o más según mirrors).
- Crear rutas /var/www/html/yum/… con permisos adecuados.
- [ ] Instalar httpd y probar acceso HTTP desde la LAN: http://192.168.0.100/yum/
- Instalar createrepo y generar repodata.
- Sincronizar updates con rsync y programar cron.
- Ajustar firewall (abrir puerto 80) y SELinux si aplica.
- Probar en un cliente: yum clean all; yum repolist; yum update –disablerepo=’*’ –enablerepo=base-local,updates-local
Criterios de aceptación
- El directorio /var/www/html/yum/base/8/i386 contiene paquetes RPM y un subdirectorio repodata con repomd.xml.
- Desde un cliente, yum repolist muestra los repos base-local y updates-local.
- Un yum install paquete conocido se descarga y se instala desde http://192.168.0.100/yum/…
- La tarea cron rsync se ejecuta sin errores y actualiza el contenido según lo esperado.
Solución de problemas común
- Apache no sirve los archivos: comprobar /var/www/html/yum tiene permisos de lectura por el usuario httpd/Apache y que el servicio está corriendo.
- SELinux bloquea accesos: verifica con ausearch/audit.log o setenforce 0 para pruebas; luego aplica contextos adecuados con restorecon -R /var/www/html/yum.
- Firewall: abre el puerto 80/TCP (iptables o firewall-cmd según versión).
- repodata desactualizada: vuelve a ejecutar createrepo después de añadir/eliminar RPMs.
- rsync falla: revisa la URL del espejo y la conectividad, y asegúrate de incluir las barras finales cuando indica el espejo.
Mantenimiento y buenas prácticas
- Programa sincronizaciones frecuentes pero razonables (cada día o cada ciertos días) según la tasa de cambios y el ancho de banda.
- Mantén rotación o limpieza de paquetes obsoletos si el almacenamiento es limitado.
- Considera firmar los RPM y habilitar gpgcheck=1 en los clientes para mayor seguridad.
- Documenta la configuración (cron, rutas, mirror usados) para futuros administradores.
Ejemplos de comprobaciones rápidas
# Desde el servidor espejo
ls -l /var/www/html/yum/base/8/i386/repodata/
# Desde un cliente
yum clean all
yum repolist
yum --disablerepo='*' --enablerepo=base-local,updates-local list available | head
Enlaces
- Fedora: http://fedoraproject.org
- Lista de espejos Fedora 8: http://mirrors.fedoraproject.org/mirrorlists/publiclist/Fedora/8
Resumen final
Crear un espejo yum local para Fedora 8 reduce el uso de ancho de banda y acelera las instalaciones en la red local. Los pasos clave son instalar Apache, copiar o sincronizar paquetes, ejecutar createrepo para generar metadata y configurar los clientes para usar el endpoint HTTP. Automatiza las actualizaciones con rsync y cron y vigila permisos, firewall y SELinux.
Importante: adapta rutas, IPs y nombres de host a tu entorno antes de aplicar los ejemplos.
Materiales similares

Cómo descargar películas y series de Netflix
Preparar /dev/sda y GRUB para RAID1 en CentOS

Ver el recuento de "No me gusta" en YouTube — guía paso a paso

Filtra tus RSS con Feed Rinse

Smartphones hackean coches japoneses
