Guía de tecnologías

Crear un repositorio yum local en Fedora 8

6 min read Linux Actualizado 10 Oct 2025
Repositorio yum local en Fedora 8
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

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.

Autor
Edición

Materiales similares

Cómo descargar películas y series de Netflix
Streaming

Cómo descargar películas y series de Netflix

Preparar /dev/sda y GRUB para RAID1 en CentOS
Linux

Preparar /dev/sda y GRUB para RAID1 en CentOS

Ver el recuento de "No me gusta" en YouTube — guía paso a paso
Guía técnica

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

Filtra tus RSS con Feed Rinse
Productividad

Filtra tus RSS con Feed Rinse

Smartphones hackean coches japoneses
Ciberseguridad

Smartphones hackean coches japoneses

Cambiar fondo de inicio de sesión en Mac
macOS

Cambiar fondo de inicio de sesión en Mac