martes, 21 de agosto de 2007

Crear un repositorio en Arch Linux

Pongo un pequeño script que sincroniza (rsync) un repositorio de Arch con un directorio de nuestro pc. Y este se puede compartir mediante NFS, Samba, FTP o lo que sea, que podremos actualizar todas las máquinas de una LAN, de forma que ninguna de ellas deba de actualizarse por Internet.

El ejemplo almacena en /repositorio el contenido de current, extra y community para arquitectura i686. No ocupa en exceso, sobre unos 8 Gb. Si queremos poner un unstable y un testing hay que eliminar las líneas que lo excluye.
#!/bin/bash
# Sincroniza el repositorio de Arch del servidor ‘distro.ibiblio.org’
# con el directorio /repositorio
# Definición de los parámetros usados:
#
# a, –archive –> archive mode; same as -rlptgoD (no -H)
# v, –verbose –> increase verbosity
# r, –recursive –> recurse into directories
rsync -arv \
–delete-after \
–exclude=0.7.2 \
–exclude=iso \
–exclude=x86_64 \
–exclude=images \
–exclude=other \
–exclude=release \
–exclude=unstable \
–exclude=testing \
distro.ibiblio.org::distros/archlinux/ \
/repositorio/

Esto puede cambiar según el repositorio fuente usado, en el que uso en este ejemplo no almacena versiones anteriores a la 0.7.2, por lo tanto no hace falta excluirlas.

El parámetro –delete-after es muy importante, pues sirve para eliminar los paquetes de destino (nuestro PC) cuando estos ya no están en el origen. Por ejemplo eliminar foo-1.tar.gz si ya esta foo-2.tar.gz, en el script esta todo pero si hay dudas ya se sabe: man rsync

Ahora solo queda a pacman, que no busque los paquetes en Internet si no que lo haga en /repositorio cosa que es realmente fácil, solo hay que modificar /etc/pacman.conf .

Y el último paso es usar cron para hacer la sincronización de manera automática, para más ir a Wiki :)

No hay comentarios: