Como crear un repositorio de Ubuntu con apt cacher. Imprimir
Escrito por Dumar Ramírez   
Viernes 16 de Julio de 2010 16:27
Como crear un repositorio de Ubuntu con apt cacher.
 
 

Cuando estás ejecutando la misma distribución en diferentes maquinas, es interesante crear un repositorio cache en tu red para que una vez descargado un paquete de un repositorio oficial, todas las demás maquinas lo descarguen en tu red local. De esta manera, no descargarás un paquete más de una vez desde los repositorios oficiales.
Póngamonos en situación, tenemos una máquina llamada repositorio-cache, esta máquina va a actuar como un repositorio cache, básicamente, y el resto de máquinas de tu red van a usarla como respositorio.

1. Comenzando

Como es normal, en primer lugar necesitas instalar los paquetes necesarios. En la terminal escribimos:

$sudo apt-get install apt-cacher

Una vez está hecho, es el momento de empezar la configuración que se encuentra en /etc/apt-cacher/apt-cacher.conf
2. Configurando Apt-Cacher
2.1. apt-cacher.conf

Una vez abierto el archivo principal de configuración de apt-cacher: /etc/apt-cacher/apt-cacher.conf podemos comenzar a editarlo de acuerdo a nuestras necesidades.

El puerto por defecto para apt-cacher es el 3142. Si quieres puedes cambiar este valor de acuerdo a tus necesidades.

allowed_hosts: por defecto, todos los host tienen permiso de acceder a tu repositorio cache. Puedes cambiar este valor si quieres permitir que sólo ciertos host accedan a él. En mi caso, quiero permitir el acceso a mi LAN 192.168.0.0/24 y al localhost (127.0.0.1 y 127.0.1.1), por lo que cambié el valor a:

allowed_hosts=192.168.0.0/24, 127.0.1.1

ya que 127.0.0.1 siempre tiene permiso, no es necesario añadir 127.0.0.1

generate_reports: Esta opción hace que apt-cacher cree un informe sobre como de eficiente es tu cache en el uso diario. El valor por defecto es 1, si quieres deshabilitarlo deberás ponerlo a 0

path_map: Esta es una opción interesante. Aquí puedes definir diferentes redirecciones a diferentes repositorios. Para mi Ubuntu Lucid, mi path_map es:

path_map = debuntu repository.debuntu.org ; ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu ; ubuntu-security security.ubuntu.com/ubuntu

Déjame explicarte. Aquí he creado mapeados para nombres:

* debuntu para el host repository.debuntu.org
* ubuntu y ubuntu-updates para el host archive.ubuntu.com/ubuntu
* y ubuntu-security para security.ubuntu.com


Ahora, para acceder a un repositorio específico, necesitamos simplemente añadir el nombre del mapeado a nuestro servidor repositorio cache ), de esta forma: repository_cache_machine:port/mapping_name (en el caso del Liceo Bolivariano las américas , es el servidor 192.168.0.1:3142)

Para acceder al repositorio debuntu a través de http://repository-cache:3142/debuntu y al repositorio ubuntu secutiry a través de http://repository-cache:3142/ubuntu-security.

2.2. Activando apt-cacher al comienzo

Para arrancar apt-cacher necesitamos activarlo desde /etc/default/apt-cacher. Abre /etc/default/apt-cacher y configura AUTOSTART a 1:

AUTOSTART=1

Ahora reinicia apt-cacher:

$sudo /etc/init.d/apt-cacher restart

Ahora que apt-cacher arranca, es hora de actualizar el /etc/apt/sources.list de todos tus clientes para que cada host de la red use nuestro repositorio cache.

3. Configurando el sources.list de los clientes y el Servidor

Ahora es el momento de configurar el sources.list de los clientes: /etc/apt/sources.list. Es importante utilizar nuestro repositorio cache en el servidor también, ya que, cualquier actualización hecha por el servidor repercutirá en la cache.

Aquí esta el /etc/apt/sources.list original:

#debuntu repository
deb http://repository.debuntu.org edgy multiverse
deb-src http://repository.debuntu.org edgy multiverse

#ubuntu main repository
deb http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy main restricted universe multiverse

#ubuntu updates repository
deb http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse
deb-src http://archive.ubuntu.com/ubuntu/ edgy-updates main restricted universe multiverse

#ubuntu security updates repository
deb http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu edgy-security main restricted universe multiverse

Para utilizar nuestro repositorio cache, necesitamos cambiar estas entradas a:

#debuntu repository
deb http://repository-cache:3142/debuntu edgy multiverse
deb-src http://repository-cache:3142/debuntu edgy multiverse

#ubuntu main repository
deb http://repository-cache:3142/ubuntu edgy main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu edgy main restricted universe multiverse

#ubuntu updates repository
deb http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-updates edgy-updates main restricted universe multiverse

#ubuntu security updates repository
deb http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse
deb-src http://repository-cache:3142/ubuntu-security edgy-security main restricted universe multiverse

Bien, ahora, cada cliente debe ser capaz de descargar los paquetes .deb desde nuestro repositorio cache:

$sudo apt-get update

debe ser ejecutado en cada cliente.

4. Importando los paquetes desde /var/cache/apt/archives/ al repositorio apt-cacher

Puede que tu servidor ya tenga una gran cantidad de paquetes en su cache local: /var/cache/apt/archives/. apt-cacher ofrece una herramienta para importar estos archivos al repositorio de apt-cacher.

Hay unos scripts muy útiles que se encuentran en /usr/share/apt-cacher/. El que nos interesa es apt-cacher-import.pl. Para importar archivos .deb desde /var/cache/apt/archives al repositorio de to apt-cacher ejecuta:

$sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives

Debe ejecutarse como root o los archivos .deb no serán copiados a nuestro repositorio cache

Ahora, en el directorio /var/cache/apt-cacher/packages/ habrá unos cuantos paquetes.

5. Obteniendo el informe de uso del repositorio cache

Si dejas la opción generate_reports configurada a 1, apt-cacher generará un informe de uso diario de la cache.

Podrás acceder a él en la dirección: http://repository-cache:3142/report

Si necesitas regenerar el informe, ejecuta: $sudo /usr/share/apt-cacher/apt-cacher-report.pl

6. Conclusión

apt-cacher es una herramienta sencilla y eficiente que te ayudará a ahorrar tiempo y ancho de banda cuando utilices múltimples máquinas con la misma distribución, cosa que puede ocurrir en una red local en casa o en una compañía.

 Extraido desde http://meth.nireblog.com/post/2006/12/17/como-crear-un-repositorio-con-apt-cacher (con algunos cambios)