Servidor Repositorio Linux (Cache)

De Guifi.net - Wiki Hispano

Revisión a fecha de 04:22 10 feb 2012; Blackhold (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

Cuando tienes varias maquinas con el mismo sistema operativo bajo el mismo techo compartiendo conexión a internet es absurdo que cada vez que una de ellas se actualiza vayan a internet a descargarse cada una por su lado los paquetes.


Si nos sobra la conexión a internet y tenemos pocas maquinas esto es absurdo, a menos que lo quieras para frikear, pero como en la rimaia empezamos a tener un interesante parque de ordenadores y guifi.net a hora punta es como un atasco en las rondas, vemos la necesidad.


Así que tenemos dos herramientas interesantes para montar un cacheador de paquetes apt, apt-proxy y apt-cacher.


Empezamos con apt-proxy:

# apt-get install apt-proxy

listos :) ahora vamos a su fichero de configuración en /etc/apt-proxy/apt-proxy.conf


y nos fijamos que hay dos secciones la [DEFAULT] y la [debian].


Para que nuestras maquinas usen este proxy configuraremos en su /etc/apt/sources.list

deb http://ipdelservidoraptproxy:9999/debian stable main non-free contrib

y comentaremos las líneas que van a buscar los paquetes que van a internet (añadiendo una # delante de la línea).


La otra opción es apt-cacher.


La diferencia es que el apt-cacher permite cachear mas de un repositorio, es decir todas las distribuciones que usan apt, en decrimento trata como independientes cada uno de los repositorios de varios países, es decir, va a descargar los paquetes dos veces si una maquina va a alemania a buscar los repositorios o a finlandia.


Además apt-cacher tiene un interfaz web que muestra las estadísticas de paquetes.


Su instalación tan simple como la de apt-proxy:

# apt-get install apt-cacher

el apt-cacher funciona con python, pero existe también apt-cacher-ng basado en c y un poco mas ligero.


El fichero de configuración se encuentra en /etc/apt-cacher/apt-cacher.conf y con la configuración por defecto tendría que estar funcionando sin problemas. Pero se recomienda cambiar alguna de estas líneas:

admin_email=usuario@localhost
generate_reports=1
expire_hours=24

el primero es para que te envie los reports a tu mail del sistema, el segundo para que se descargue los ficheros releases y packages y el tercero el tiempo que pasa un paquete antes de buscar una nueva versión del mismo (útil para aquellos que usan versiones sid y testing del sistema).


Para ver si el apt-cacher está funcionando en un navegador escribiremos:

http://ipdelservidor/apt-cacher

veremos algunas estadísticas del servidor. Ahora sólo faltará configurar los clientes para que lo usen.


Dejaremos nuestro /etc/apt/sources.list mas o menos para que quede así.

# Originales
#deb http://ftp.de.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.de.debian.org/debian/ squeeze main contrib non-free

deb http://ipdelservidor/apt-cacher/ftp.de.debian.org/debian/ squeeze main contrib non-free
deb-src http://ipdelservidor/apt-cacher/ftp.de.debian.org/debian/ squeeze main contrib non-free

Guardaremos el fichero y haremos un apt-get update.


Si vamos al servidor y hacemos un ps aux al momento que hacemos el apt-get update veremos como hay procesos del apt-cacher haciendo algo:

# ps aux |grep apt-cacher
www-data  3168  0.0  0.6  14120  6492 ?        S    Feb19   0:00 /usr/bin/perl /usr/sbin/apt-cacher -R 3 -d -p /var/run/apt-cacher.pid
www-data  6200 15.2  0.7  12960  7468 ?        S    11:47   0:20 /usr/share/apt-cacher/apt-cacher.pl [libcurl]
www-data  6209  0.2  0.8  12924  8428 ?        S    11:47   0:00 /usr/share/apt-cacher/apt-cacher.pl [cgi]
www-data  6210  0.0  0.6  12780  6516 ?        S    11:47   0:00 /usr/share/apt-cacher/apt-cacher.pl [cgi] [ftp.de.debian.org/debian/dists/squeeze/main/binary-i386/Packages.bz2]
root      6213  0.0  0.0   3108   744 pts/0    S+   11:49   0:00 grep apt-cacher

Si en algun momento queremos regenerar el apt-cacher antes de 24h y forzar a actualizar los paquetes podemos ejecutar lo siguiente:

# ./usr/share/apt-cacher/apt-cacher-report.pl

Este comando también es interesante ejecutarlo cuando se te queda un paquete pillado y no hay forma de descargarlo.

Pues venga, a correr!!! me quedo con el apt-cacher.

Herramientas personales