viernes, 8 de febrero de 2013

Cómo crear un repositorio local para Debian


En este post explicaremos como crear un repositorio para Debian utilizando debmirror. Para ello es necesario tener instalados los siguientes paquetes:

 #apt-get install debmirror rsync apache2   

debmirror es una herramienta que nos permite la creación parcial o total de un repositorio Debian.

rsync es una herramienta para sincronizar los ficheros y directorios que tenemos almacenados en un sitio en otro diferente, minimizando la transferencia de datos (Wikipedia: rsync).

apache2 es un servidor web de codigo abierto, el cual utilizaremos para servir nuestro repositorio en la red local.

Antes de empezar debemos verificar que disponemos del espacio suficiente, en este caso tenemos una partición de 139Gb montada en "/mirror".
 # df -h /mirror/  

Creemos un script llamado "mirror.sh" con el siguiente contenido:
#!/bin/sh  
 HOST=ftp.us.debian.org  
 METODO=rsync  
 DIST=squeeze  
 ARCH=amd64,i386  
 SECTION=main,non-free,contrib   
 DIRECTORIO=/mirror/debian  
 echo "==================================================================="  
 echo "===== Actualizando los repositorios: main, contrib, non-free ======"  
 echo "==================================================================="  
 debmirror \  
      -h ${HOST} \  
      --progress \  
      --dist=${DIST} \  
      --root=/debian \  
      --di-arch=${ARCH} \  
      --section=${SECTION} \  
      --arch=${ARCH} \  
      --method=${METODO} \  
      --nosource \  
      --ignore-release-gpg \  
      --i18n \  
      --rsync-extra=doc,tools,indices \  
      --rsync-options='-aIL' ${DIRECTORIO}  
 echo "======================================================================"  
 echo "Actualizando los repositorios wheezy-updates, main, contrib, non-free"  
 echo "======================================================================"  
 DIST=squeeze-updates  
 SECTION=main,non-free,contrib  
 METODO=rsync  
 ARCH=amd64,i386  
 debmirror \  
      -h ${HOST} \  
      --progress \  
      --dist=${DIST} \  
      --root=/debian \  
      --di-arch=${ARCH} \  
      --section=${SECTION} \  
      --arch=${ARCH} \  
      --method=${METODO} \  
      --nosource \  
      --ignore-release-gpg \  
      --i18n \  
      --rsync-extra=doc,tools,indices \  
      --rsync-options='-aIL' ${DIRECTORIO}  


Ahora le damos permisos de ejecución:
 #chmod +x mirror.sh  

Luego lo ejecutamos, este proceso va a demorar bastante:
 #./mirror.sh  

Unas cuantas horas después... Debemos generar los enlaces con apache:
 #ln -s /mirror /var/www/mirror  

A esta altura ya tenemos nuestro repositorio Debian. Para poder utilizarlo solo nos resta agregarlo a nuestro sources.list de la siguiente manera:

 deb http://NUESTRA_IP/mirror/debian/ squeeze main contrib non-free  
 deb-src http://NUESTRA_IP/mirrordebian/ squeeze main contrib non-free  
 deb http://NUESTRA_IP/mirror squeeze/updates main contrib non-free  
 deb-src http://NUESTRA_IP/mirror squeeze/updates main contrib non-free