Mirror interno con apt-cacher


apt-cacher

En casa tengo dos computadoras, mi PC y mi netbook lenovo S10e, ambas en Debian. Es probable que lo que haya instalado en una esté instalado en la otra (por ejemplo, OpenOffice.org o Gimp), de forma que cada vez que actualizo mis computadoras tengo que  descargar los paquetes dos veces. Me preguntaba si habría una forma de descargar los paquetes en una computadora y usarla como mirror interno….y la respuesta es si, a través de un repositorio caché como apt-cacher.

Instalación de apt-cacher

En Debian (o algún derivado como Ubuntu) puedes instalar apt-cacher escribiendo:

aptitude install apt-cacher

Configuración del servidor

Definición de mirrors

Para configurar apt-cacher, debes editar el archivo /etc/apt-cacher/apt-cacher.conf. Existen varios parámetros que modifican el comportamiento de apt-cacher, pero el más importante para aprender es  el parámetro path_map . Usando este parámetro, definirás tus mirrors internos. Por ejemplo, digamos que quieres configurar dos mirrors, uno para los repositorios de Debian (main, contrib and non-free),  y otro para los repositorios de Debian-Multimedia. Puedes definirlos de la siguiente manera:

path_map = debian http://ftp.us.debian.org/debian/ ; multimedia http://www.debian-multimedia.org

Activación del servicio

Para que se active el servicio al iniciar el equipo y configurar el puerto por donde escuchará el sevicio,  se debe editar el archivo /etc/default/apt-cacher con el siguiente contenido:

# set to 1 to start the daemon at boot time
AUTOSTART=1

# extra settings to override the ones in apt-cacher.conf
EXTRAOPT=" daemon_port=3142 limit=30 "

Importación de paquetes antiguos

Si ya has descargado una buena cantidad de paquetes y quieres aprovecharlos, puedes importarlos a apt-cacher. Por ejemplo,  para importar tus archivos .deb ubicados en /var/cache/apt/archives/, puedes usar la siguiente orden:

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

La opción -r hace que se creen enlaces duros o que se copien los archivos (la opción -s algunas veces no funcionan debido a problemas de permisología).

Reinicio del servicio

Cuando hayas terminado de configurar el servidor, puedes reiniciar  apt-cacher usando su script de servicio:

/etc/init.d/apt-cacher restart

Configuración de los clientes

Ahora debes configurar el archivo de repositorios en tu máquinas clientes, de forma que puedan conectarse al los nuevos mirrors. Para los mirrors que creaste previamente, añade las siguientes líneas al archivo /etc/apt/sources.list:

deb http://192.168.1.100:3142/debian testing main contrib non-free
deb http://192.168.1.100:3142/multimedia testing main

En este ejemplo, 192.168.1.100 es la dirección IP del servidor.Si deseas usar un nombre de dominio, puedes crear un DNS o simplemente editar el archivo /etc/hosts de cada computadora  (depende de ti).

Actualizando los clientes

Ahora estás listo para usar tus nuevos mirrors. Como siempre, actualiza la lista de paquetes y luego procede a actualizar el sistema de tus clientes:

aptitude update
aptitude safe-upgrade

Repite los pasos del cliente para cada máquina que quieras conectar el servidor de cache.

Reportes

apt-cacher viene con una herramienta de reportes (ver imagen inferior) la cual es ejecutada cada día a través de crontab. Si deseas revisar cuánto has ahorrado en ancho de banda, puedes visitar http://localhost:3142/report o http://192.168.1.100:3142/report, o cualquiera que sea la dirección IP del servidor. Desde que instalé  apt-cacher, este ha compartido 366 MB de 1104.7 MB descargados…nada mal  :)

apt-cacher

Referencias


,

  1. #1 by Luis Gallardo on 15/03/2010 - 11:26

    @Rino quizás sea que no estaba disponible el sitio, o que no pudo responder por el servicio…

  2. #2 by Luis Gallardo on 15/03/2010 - 11:16

    @Rino se ve bien lo que pones…

  3. #3 by Luis Gallardo on 15/03/2010 - 11:12

    @Rino eso puede ser que no está consiguiendo el paquete en los repositorios que definiste.

  4. #4 by Rino on 14/03/2010 - 2:40

    Ahi lo arregle
    tuve que usar repositorios que no sean de ftp.

    deb http://www.us.debian.org/debian/ lenny main contrib non-free
    path_map = debian http://www.us.debian.org/debian/;
    Sun Mar 14 15:08:55 2010|3024|192.168.210.131|HIT|355936|libasound2_1.0.16-2_i386.deb
    Sun Mar 14 15:08:55 2010|3024|192.168.210.131|HIT|177256|libltdl3_1.5.26-4+lenny1_i386.deb
    Sun Mar 14 15:08:55 2010|3024|192.168.210.131|HIT|345726|libmpg123-0_1.4.3-4_i386.deb
    Sun Mar 14 15:08:55 2010|3024|192.168.210.131|HIT|129832|mpg123_1.4.3-4_i386.deb

    puede ser eso el error??

  5. #5 by Rino on 14/03/2010 - 1:56

    path_map = debian http://ftp.us.debian.org/debian/ ; multimedia http://www.debian-multimedia.org

    debianhost:/etc/apt# cat sources.list
    deb http://192.168.210.132:3142/debian lenny main contrib non-free
    debianhost:/etc/apt#

    fue probado en dos maquinas virtuales.

  6. #6 by Rino on 14/03/2010 - 1:53

    MIra el error quente..

    Sun Mar 14 14:17:21 2010|192.168.210.1|— /usr/sbin/apt-cacher: Usage error
    Sun Mar 14 14:17:23 2010|192.168.210.1|— /usr/sbin/apt-cacher: Usage error

    Sun Mar 14 14:22:02 2010|6625|192.168.210.131|MISS|92516|ftp.us.debian.org_debian_dists_lenny_contrib_binary-i386_Packages.gz
    Sun Mar 14 14:22:15 2010|6625|192.168.210.131|MISS|122132|ftp.us.debian.org_debian_dists_lenny_non-free_binary-i386_Packages.gz

    Slaudos

(No será publicado)