Un dépôt cache pour Debian et dérivées
Depuis quelques temps, toutes mes machines fonctionnent sous Debian :
Squeeze pour les serveurs et les PC de Maelle et Michele, SID et Aptosid
pour mon portable.
En plus de ces PC physiques, je réalise un certains nombre de tests dans
des machines virtuelles qui fonctionnent sous Debian.
Cherchant à améliorer letemps des mises à jour (téléchargement des
paquets), j’ai fait quelques recherches et j’ai découvert
apt-cacher-ng
qui réalise la fonction de cache lors des mises à
jour.
apt-cacher-ng
fonctionne pour Debian et ses dérivées (Ubuntu, Mint,
Crunchbang), je ne l’ai testé qu’avec des clients Debian en version
Squeeze et sid et avec un des clients Aptosid.
Principe de fonctionnement
Apt-caccher-ng
est installé sur l’une des machine du réseau et sa
présence est déclarée sur toutes les autres. A chaque mise à jour d’une
station, celle ci va demander les paquets requis à la station hébergeant
le cache, s’ils sont présents, elles va les télécharger à la vitesse du
réseau local (100Mb/s chez moi).
S’ils sont absents du cache, ils vont être téléchargé depuis les
serveurs de dépôts et mis à disposition du PC en cour de mise à jour ;
dans ce cas, le téléchargement se fait en fonction du débit de la
connxion internet (8Mb/s chez moi).
Installation et configuration du cache
Comme apt-cache-ng est présent dans les dépôts :
root@web2:/media/ubuntu# apt-cache policy apt-cacher-ng
apt-cacher-ng:
Installé: (aucun)
Candidat: 0.5.1-3
Table de version:
0.5.1-3 0
500 http://ftp.fr.debian.org/debian/ squeeze/main amd64 Packages
root@web2:/media/ubuntu#
Il suffit de l’installer avec apt
:
apt-get install apt-cacher-ng
La configuration est située dans le fichier
/etc/apt-cacher-ng/acng.conf
Ayant créé une partition dédiée aux données du cache, j’ai uniquement modifié la variable indiquant ce répertoire :
# Letter case in directive names does not matter. Must be separated with colons.
# Valid boolean values are a zero number for false, non-zero numbers for true.
#CacheDir: /var/cache/apt-cacher-ng
CacheDir: /montage/Depot/apt-cacher-ng
Utilisation du cache
Pour que les stations du réseau local utilisent ce cache, il faut
modifier la configuration de apt
pour lui indiquer l’adresse de la
station cache.
Deux solutions sont possibles :
La première consiste à modifier toutes les adresses des dépôts pour
qu’ils transitent par le cache.
Exemple pour un cache installé sur une station d’adresse 192.168.0.5 et
travaillant avec le port par défaut 3142 :
deb http://cdn.debian.net/debian/ sid main contrib non-free
devient :
deb http://192.168.0.5:3142/cdn.debian.net/debian/ sid main contrib non-free
Suivant le nombre de dépôts utilisés et le nombre de stations présentes dans le réseau, cela peut devenir long et fastidieux !
La deuxième solution consiste à déclarer le cache dans la configuration
d’apt.
Pour cela, j’ai créé le fichier dans /etc/apt/apt.conf.d/99Proxy
contenant :
[mer. déc. 07 - 23:37:42] - /etc/apt/apt.conf.d
511 [yvon@nanda] $ cat 99proxy
Acquire::http::Proxy::bugs.debian.org "DIRECT";
Acquire::http { Proxy "http://192.168.0.5:3142"; };
La première ligne (Acquire::http::Proxy::bugs.debian.org "DIRECT";
)
permet de forcer apt-listbugs
à ne pas utiliser le cache et à
accéder directement au rapports de bugs.
Maintenir le cache
Il est possible de voir l’état d’apt-caccher-ng
via la page
http://192.168.0.5:3142/acng-report.html.
Suivant le nombre de versions qui sont présentes dans le réseau, il faut surveiller la taille occupée par celui ci, après bientôt 2 mois d’utilisation :
root@web2:/montage/Depot/apt-cacher-ng# df -h .
Sys. de fichiers Taille Uti. Disp. Uti% Monté sur
/dev/mapper/Web-Depot
99G 3,6G 90G 4% /montage/Depot
Pour nettoyer les paquets inutiles du cache, il faut utiliser le bouton
Start scan and/or expiration
de l’interface web.
Pour limiter la taille occupée par le cache, il est conseillé d’utiliser les même adresses de dépôts sur les stations du réseau.
Utiliser le cache pour une installation
Lors d’une installation de Debian, il y a une étape qui demande s’il
faut utiliser un proxy. Il suffit de donner l’adresse du cache
apt-cacher-ng
et tous les paquets devant être téléchargés depuis le
réseau se feront au travers du cache.
Dans mon cas, l’adresse est :
http://192.168.0.5:3142/
A la fin de l’installation, le fichier /etc/apt/ apt.conf contient
:
yvon@lutig:/etc/apt$ more apt.conf
Acquire::http::Proxy "http://192.168.0.5:3142/";
Liens
- http://www.unix-ag.uni-kl.de/~bloch/acng/html/index.html
- http://www.isalo.org/wiki.debian-fr/index.php?title=Apt-cacher-ng