Servidor Repositorio Linux (Cache)
De Guifi.net - Wiki Hispano
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 a la que 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.