Servidor Repositori Linux (Cache)
De Guifi.net - Wiki Català
Quan tens vàries màquines amb el mateix sistema operatiu compartint connexió a internet sota el mateix sostre, és absurd que cada cop que s'actualitzen hagin d'anar a internet a descarregar-se cadascuna pel seu costat els paquets.
Si ens sobra connexió a internet i tenim poques màquines això és absurd, a menys que ho vulguis per frikejar, però a la que comences a tenir un parc d'ordinadors interessant i a guifi.net a l'hora punta és com un embotellament a les rondes, veiem la necessitat.
Així que tenim dos eines interessants per a muntar un catxejador de paquets apt, apt-proxy i apt-cacher.
Comencem amb apt-proxy:
# apt-get install apt-proxy
llestos :) ara anem al seu fitxer de configuració a /etc/apt-proxy/apt-proxy.conf
i ens fixem que hi ha dos seccions, la [DEFAULT] i la [debian].
Per a què les nostres màquines facin servir aquest proxy configurarem al seu /etc/apt/sources.list
deb http://ipdelservidoraptproxy:9999/debian stable main non-free contrib
i comentarem les línies que van a buscar els paquets a internet (afegint # davant de cada linia).
L'altra opció és apt-cacher.
La diferència és que apt-cacher permet catxejar més d'un repositori, és a dir, totes les distribucions que utilitzen apt, en decriment les tracta de forma independent cadascun dels repositoris de varis països, és a dir, descarregarà els paquets dos vegades si una màquina va a alemanya a buscar els repositoris o a finlàndia.
A més apt-cacher té una interfície web que mostra les estadístiques dels paquets.
La seva instal·lació és tan simple com la d'apt-proxy:
# apt-get install apt-cacher
l'apt-cacher funciona amb python, però existeix un apt-cacher-ng basat en c i una mica més lleuger.
El fitxer de configuració està a /etc/apt-cacher/apt-cacher.conf i amb la configuració per defecte hauria d'estar funcionant sense problemes. Però es recomana modificar alguna d'aquestes línies:
admin_email=usuari@localhost generate_reports=1 expire_hours=24
El primer és per a que enviï els reports al teu mail del sistema, el segon per a què es descarregui els fitxers releases i packages i el tercer el temps que passa un paquet abans de buscar una nova versió del mateix (útil per aquells que utilitzin versions sid i testing del sistema).
Per veure si el apt-cacher està funcionant, en un navegador escriurem:
http://ipdelservidor/apt-cacher
veurem algunes estadístiques del servidor. Ara només faltarà configurar els clients per a què l'utilitzin.
Deixarem el nostre /etc/apt/sources.list més o menys que quedi així.
# Originals #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
Hi ha una altra opció si no vols tocar el sources.list . Consisteix en dir-li a l'APT que cerqui els paquets a través d'un proxy. Això ho farà amb totes les entrades del sources.list, molt útil per distribucions com Ubuntu on hi ha moltes entrades, inclús les de tercers que s'afegeixen al directori /etc/apt/sources.list.d/ . Per a fer-ho, creem un fitxer al directori /etc/apt/apt.conf.d/ , per exemple, /etc/apt/apt.conf.d/90-apt-proxy.conf . El seu contingut ha de ser:
Acquire::http::Proxy "http://ipdelservidor:port";
Amb qualsevol de les opcions que hagis escollit, desarem el fitxer i farem
apt-get update
Si anem al servidor i fem un ps aux al moment que fem el apt-get update veurem que hi ha processos del apt-cacher fent alguna cosa:
# 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 moment volem regenerar el apt-cacher abans de 24h i forçar a actualitzar els paquets podrem fer això:
# ./usr/share/apt-cacher/apt-cacher-report.pl
Aquesta comanda també és interessant executar-la quan es quedi algun paquet enganxat i no hi hagi forma de descarregar-lo.
Doncs vinga a còrrer!!! em quedo amb el apt-cacher.