Apt-cacher-ng

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Installation, configuration et utilisation de apt-cacher-ng (ac-ng)

Introduction

Acng est un "dépôt cache" de paquets Debian

Avantages :

Très simple à installer;
Utilisable par toutes les distributions à base de Debian;
Accessible depuis tout le réseau.
Votre dépôt ne contient que les paquets dont vous avez besoin (contrairement à un dépôt miroir)

Inconvénient :

Votre dépôt cache peut devenir très important, en fonction du nombre de distribution / branches que vous maintenez

"Ac-ng" fonctionne de manière très simple. Quand une machine sur le réseau installe un paquet, "ac-ng" le "capte" et le copie dans son "cache". Il est ainsi ensuite disponible pour toutes les autres machines du réseau, à la vitesse du réseau local :D

Pas besoin d'avoir un réseau de taille démesuré pour avoir besoin de "ac-ng"... Une mauvaise connexion le justifie, l'envie de réinstaller rapidement en cas de crash, si vous testez souvent dans des machines virtuelles... Simplement vouloir éviter de saturer sa bande passante avec du téléchargement de paquets.

Il fonctionne sans proxy installé, puisque lui-même fonctionne comme un proxy. Si vous avez un proxy sur votre système, vous déclarerez-le dans votre configuration, il sera prit en compte.

Installation

Il n'y a pas plus simple...

apt-get install apt-cacher-ng

Configurer le serveur

Un seul fichier à modifier : /etc/apt-cacher-ng/apcng.conf

CacheDir: /mnt/192.168.0.2/cache/apt-cacher-ng
# L'emplacement normal est /var/www/apt-cacher J'ai choisi un autre emplacement sur une partition LVM
LogDir: /var/log/apt-cacher-ng
Port:3142
BindAddress: localhost 192.168.0.1
# Pour plus de sécurité, réserver l'utilisation à son réseau local, mais rien n'empêche d'étendre...
#Remap-debian: file:deb_mirror*.gz /debian ; file:backends_debian
#Remap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu
VerboseLog: 1
ReportPage: acng-report.html
Proxy: http://192.168.0.254:3128
ExTreshold: 4

Concernant la commande Remap... Elle permet de mettre un peu d'ordre dans vos dépôts. Voir plus bas.

Voici ce que ça donne :

laurent@spider:/mnt/192.168.0.2/cache/apt-cacher-ng$ ls -lh
total 4,5M
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 26  2009 archive.canonical.com
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K nov 18 10:27 boisson.homeip.net
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 29  2009 changelogs.ubuntu.com
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 debian
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K nov  4 11:23 debian.med.univ-tours.fr
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 deb.opera.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 dl.google.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K fév  8 17:43 download.tuxfamily.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 25  2009 download.virtualbox.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 download.webmin.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K oct  9 14:26 eeepc.debian.net
-rw-r--r-- 1 apt-cacher-ng apt-cacher-ng    0 mar 15 06:49 _expending_dat
-rwxr-xr-x 1 apt-cacher-ng apt-cacher-ng 1,4M mar 27 07:32 _impkeycache
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 3,1M mar 27 07:32 _import
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K oct 21 08:07 packages.debian.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 26  2009 packages.enlightenment.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K mar 28 20:56 packages.medibuntu.org
drwxr-sr-x 5 apt-cacher-ng apt-cacher-ng 4,0K mar 27 07:04 ppa.launchpad.net
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 repo.palatinus.cz
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K mar 27 18:17 repos.eeebuntu.org
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K sep 24  2009 security.debian.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 28  2009 security.ubuntu.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K nov 11 15:17 sidux.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K jan 10 08:27 sidux.office-vienna.at
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K nov 11 06:45 talweg.univ-metz.fr
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K sep 26  2009 uburep
drwxr-sr-x 2 apt-cacher-ng apt-cacher-ng 4,0K oct  1 12:04 volatile.debian.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K jan  8 11:46 w3you.com
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 24  2009 www.backports.org
drwxr-sr-x 4 apt-cacher-ng apt-cacher-ng 4,0K sep 23  2009 www.debian-multimedia.org
drwxr-sr-x 3 apt-cacher-ng apt-cacher-ng 4,0K sep 26  2009 www.lamaresh.net

En utilisant l'option Remap vous ac-ng va créer des sous-répertoires (Debian, Ubuntu...) qui servent à centraliser les mêmes dépôts issus de sites miroirs. Cela évite les dépôts "doublons".

Ensuite, vous pouvez faire un lien symbolique de /mnt/192.168.0.2/cache/apt-cacher-ng vers /var/www/apt-cacher-ng pour avoir un accès avec un serveur apache2/httpd (vous pouvez ainsi naviguer dans le dépôt depuis n'importe quelle machine du réseau). C'est juste un petit "gadget" en plus, aucune utilité réelle...

Configuration client

Il suffit d'éditer ou créer le fichier /etc/apt/apt.conf pour qu'il ressemble à ça :

Acquire::http {
        Proxy "http://192.168.0.1:3142";
        };

Edit : Pour ceux qui utilisent apt-listbugs, ajouter cette ligne EN PREMIER dans apt.conf :

Acquire::http::Proxy::bugs.debian.org "DIRECT";

Il y a une deuxième solution qui consiste à modifier tous les sources.list, je ne détaille pas volontairement, c'est moins simple...

Pensez aussi à changer le fichier /etc/apt/apt.conf du serveur pour que lui aussi participe à la maintenance de votre dépôt !

Importation de paquets déjà téléchargés ou présents sur vos DVD :

cd /mnt/192.168.0.2/cache
mkdir apt-cacher-ng/_import[/code]
Copiez vos fichiers deb dans le cache (/mnt/192.168.0.2/cache/apt-cacher-ng/_import)
chown -R apt-cacher-ng apt-cacher-ng/_import[/code]

Faire un apt-get update sur tous les clients et sur le serveur

Puis ouvrir l'interface web de apt-cacher-ng "http://192.168.0.1:3142/acng-report.html" et cliquer simplement sur "start import". Il va copier les deb à jour dans les bons dépôts du cache local

Exemple d'utilisation des "backends" :

Un fichier «Backend» est un fichier texte contenant une liste d'URLs mirroirs, un par ligne.

Utilisation d'un fichier backends pour les dépôts multimedia. Dans /etc/apt-cacher-ng/acng.conf ajoutez cette ligne :

Remap-marillat: file:backends_marillat /debian-multimedia

Création du fichier contenant les url :

# nano /etc/apt-cacher-ng/backends_marillat
http://www.debian-multimedia.org
ftp://ftp.debian-multimedia.org
http://mirror.optus.net/debian-multimedia/
http://mirror.home-dn.net/debian-multimedia
http://debian-multimedia.gnali.org
http://debian-multimedia.informatik.uni-erlangen.de/debian-multimedia
http://mi.mirror.garr.it/mirrors/debian-multimedia
http://mirror.yandex.ru/debian-multimedia/
http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia
http://ftp.tw.debian.org/debian-multimedia/
Redémarrez acng :
# service apt-cacher-ng restart

Faites un apt-get update avec un client qui contient une dépôt multimédia dans son sources.list. Un nouveau répertoire est maintenant créé dans CacheDir : /marillat

L'avantage est énorme, il permet en cas de défection d'un dépôt de pouvoir continuer à faire ses mise-à-jour sans avoir besoin de changer tous les sources.list de vos "clients"...

Pour conclure

N'oubliez pas d'ouvrir sur le serveur le port du pare-feu (ici 3142) pour que les machines du réseau puissent accéder à ac-ng... :wink:

Pensez à uniformiser les sources.list des vos différentes machines, vous gagnerez du temps de connexion !

Entretien de la base... Afin de ne pas avoir au bout de quelques mois un cache démesuré, surtout si des machines en SID traînent sur votre réseau, penser à la nettoyer de temps-en-temps... interface web de apt-cacher-ng "http://192.168.0.1:3142/acng-report.html" + "start expiration" Cela efface tous les paquets devenus obsolètes !

Grâce à ce serveur j'installe une Lenny avec debootstrap en une minute et 8 secondes...

J'ai remarqué que parfois des blocages arrivaient au niveau des clients pendant le téléchargement de paquets. C'est réglé par un simple redémarrage de ac-ng

laurent@spider:/mnt/192.168.0.2/cache/apt-cacher-ng$ sudo /etc/init.d/apt-cacher-ng restart
Restarting apt-cacher-ng: apt-cacher-ng.

Dernière information... La taille du cache !

Le mien :

$ du -sh apt-cacher-ng/
43G     apt-cacher-ng/

43 Go après 6 mois d'utilisation. Maintien de Etch (32bits), Lenny (32 et 64bits), Squeeze (64bits), Sid (64bits), Sidux (32 et 64 bits), Ubuntu et Kubuntu 9.10 (32 et 64 bits)... C'est raisonnable (l'équivalent d'une dizaine de DVD)...

--Lol 1 avril 2010 à 09:10 (UTC)

Liens sur le forum : [1] Le T&A sur le forum] La Discussion si vous avez des questions