Español  

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.

Eines de l'usuari