Crear un repositorio local de paquetes Debian

Esta semana ha salido por fin la nueva versión estable de Debian GNU/Linux, la versión 4.0 y más conocida como Etch. Si tenemos varias máquinas o servidores, mantenerlas actualizadas puede suponer un gran gasto de ancho de banda, ya que tendremos que bajar varias veces los paquetes de actualización.

Para ahorrar ancho de banda podemos utilizar varias herramientas que nos permitirán crear un mirror local Debian y así descargar solo una vez los paquetes necesarios.

  1. Configuración en el servidor
  2. Utilizaremos una máquina con suficiente espacio en disco para crear el mirror local. Para ello, podemos utilizar el paquete debmirror para realizar la copia local del repositorio Debian. Para instalarlo bastará con ejecutar el siguiente comando:

    # apt-get install debmirror

    Una vez instalado, buscaremos una partición con suficiente espacio en disco, ya que esta herramienta creará un repositorio completo de las distribuciones que le indiquemos. Así por ejemplo, supongamos que tenemos una partición en la que creamos un directorio mirror. Dentro de él crearemos nuestro repositorio local de paquetes Debian ejecutando el siguiente comando (no es necesario ejecutarlo como root, tan solo tener permisos de escritura en el directorio donde vayamos a crear el repositorio):

    $ debmirror --debug --method=http --dist=etch,sid --nosource --arch=i386 --host=ftp.debian.org --ignore-release-gpg debian

    El comando anterior creará el repositorio local dentro del directorio debian, a partir del mirror oficial ftp.debian.org, para la arquitectura i386, sin descargar los fuentes, usando método http, para las ramas etch (estable) y sid (inestable) de Debian. Podemos obtener más ayuda de las opciones en las páginas del manual (man debmirror).

    También es recomendable crear un repositorio local de los paquetes de seguridad para la distribución estable. El siguiente comando se encargará de generar este repositorio:

    $ debmirror --debug --method=http --dist=etch/updates --nosource --arch=i386 --host=security.debian.org -r=/ --section=main,contrib,non-free debian-security/

    El último paso será hacer accesible el repositorio para otros clientes. En la mayoría de los casos será necesario tener instalado un servidor web (como Apache), un servidor FTP (como ProFTPd) o mejor ambos. Por ejemplo, podemos crear unos enlaces desde el directorio /var/www a cada uno de los directorios creados anteriormente (debian y debian-security), con lo que los repositorios quedarán accesibles mediante protocolo HTTP:

    mirror:/var/www# ls -l debian*
    lrwxrwxrwx 1 root root 27 Sep 7 08:07 debian -> /home/ftp/pub/mirror/debian
    lrwxrwxrwx 1 root root 37 Sep 7 08:07 debian-security -> /home/ftp/pub/mirror/debian-security/

  3. Configuración en los clientes
  4. La configuración que hay que hacer en los clientes se limita a modificar el archivo /etc/apt/sources.list para que accedan al nuevo repositorio. Así, suponiendo que nuestro servidor es accesible a través de la dirección mirror.ejemplo.com, bastará con que el archivo sources.list contenga las siguientes líneas:

    deb http://mirror.ejemplo.com/debian etch main contrib non-free
    deb http://mirror.ejemplo.com/debian-security etch/updates main contrib non-free

    Si en vez de tener la rama estable (Etch) utilizamos la rama inestable (Sid), la lí­nea que deberá incluir el archivo será la siguiente:

    deb http://mirror.ejemplo.com/debian sid main contrib non-free

~ por ortegaga en 13 Abril 2007.

4 comentarios to “Crear un repositorio local de paquetes Debian”

  1. Clarito con el agua… Espero que sigas aportando tus conocimientos, sobre todo en cosillas como ésta que siempre vienen bien.

    Saludos

  2. en estos momentos estoy siguiendo los pasos, pero en mi red tengo algunos problemas, solo queria saber cuantos ficheros (tamaño) se deben descargar y que promedio de tiempo se requiere. gracias por esta informacion, es muy buena, espero que me pueda responder. muchas gracias

  3. Depende de qué queramos hacer el mirror. Por ejemplo, en el trabajo tenemos mirrors de varias distribuciones y para distintas arquitecturas:

    – ubuntu breezy i386 completa (incluídas fuentes): 26164 Mb
    – ubuntu feisty i386 completa (incluidas fuentes): 34618 Mb
    – debian sarge, etch y sid, amd64 e i386, sin fuentes ni archivos -dbg: 40529 Mb
    – debian security, sarge y etch, amd64 e i386, sin fuentes ni archivos -dbg: 3958 Mb

    ¿El tiempo para descargar? Pues depende del ancho de banda. Si disponemos de una conexión de 4 Mbps, bajaríamos a unos 400 KB/s, así que solo resta dividir ;)

  4. Amigo, si tengo los DVD de debian, y solo quisiera actualizar los paquetes, como sería el procedimiento ? hay que utilizar rsync ? hay que montar los dvd en el directorio que creamos para el reporitorio, te agradezco si puedes escribir un comentario aclarando esta duda. Gracias.

Escribe un comentario