Contenu | Rechercher | Menus

Serveur apt-cacher

apt-cacher est une solution proxy de mise en cache des paquets Debian. À travers ce proxy, un ensemble d'ordinateurs clients accède indirectement aux dépôts.
Quand un paquet est demandé pour la première fois, il est téléchargé par le proxy et transmis au client tout en conservant une copie en local. Pour toute future demande du même paquet, le proxy ne télécharge pas les paquets mais transmet la copie locale. Ainsi, on économise la bande passante externe et du temps pour les clients.

Pré-requis

il ne faut surtout pas mélanger les distributions sur la même instance apt-cacher.1)

Installation

Installer les paquets apt-cacher et apache2 :

sudo apt-get install apt-cacher apache2

Configuration du serveur

Activer apt-cacher automatiquement

Il est recommandé pour des raisons de performances et d'utilisation de la mémoire de lancer apt-cacher en mode autonome (Stand-alone Daemon) :

  • Éditer le fichier /etc/default/apt-cacher et mettre l'option AUTOSTART à 1 :
    AUTOSTART=1 
  • Lancer apt-cacher :
    sudo service apt-cacher start 

À partir de Ubuntu 12.04, il faut modifier allowed_hosts dans /etc/apt-cacher/apt-cacher.conf. Par exemple :

allowed_hosts = *

Puis relancer apt-cacher :

sudo service apt-cacher restart

Tester

  • Taper l'adresse suivante dans votre navigateur web :

http://"adresse_du_serveur_apt-cacher":3142

  • Si vous n'obtenez pas une page détaillant la configuration d'apt-cacher, relancer apache2.

Mettre en cache les fichiers .deb déjà téléchargés

Pour mettre dans le cache d'apt-cacher les fichiers .deb déjà présents dans le cache apt du serveur, il suffit d'exécuter la commande suivante :

sudo /usr/share/apt-cacher/apt-cacher-import.pl /var/cache/apt/archives 

Si cette commande ne passe pas essayez :

sudo /usr/share/apt-cacher/apt-cacher-import.pl -r -R /var/cache/apt/archives 

Utilisation d'un proxy

Si votre connexion internet passe par un proxy Éditer le fichier /etc/apt-cacher/apt-cacher.conf et modifier ces lignes :

http_proxy=hostname:port
use_proxy=1
http_proxy_auth=username:password
use_proxy_auth=1

Remplacer les mots "hostname" par le nom ou l'adresse de votre Proxy Internet, le "port" et le "username":"password" par les vôtres pour l'authentification au niveau du Proxy Internet.

Configuration des clients

  • Le port par défaut est 3142.
  • Il existe deux manières pour configurer le client avec apt-cacher.

Méthode par modification de la sources.list

Modifier le fichier /etc/apt/sources.list du client en insérant adresse_du_serveur_apt-cacher:le_port. Par exemple :

deb http://archive.ubuntu.com/ubuntu/ hardy main restricted

devient :

deb http://adresse_du_serveur_apt-cacher:3142/archive.ubuntu.com/ubuntu/ hardy main restricted

Méthode Proxy

Cette méthode très simple à mettre en place à l'avantage de permettre de mettre à jour le système directement via les dépôts si le proxy apt-cacher n'est pas disponible. Elle ne pose donc aucun problème avec un ordinateur portable.

  • Éditer le fichier /etc/apt/apt.conf.d/01proxy, et insérez la ligne suivante :
    Acquire::http::Proxy "http://<adresse_du_serveur_apt-cacher>:3142";

Problèmes

Un bug sur un serveur Ubuntu 12.04 LTS ouvre le port 3142 en écoute uniquement sur l'adresse IPv6 :

netstat -na | grep 3142
tcp6       0      0 :::3142                 :::*                    LISTEN

Le paquet libio-socket-inet6-perl semble être la source du problème.

  • Il faut donc purger ce paquet :
    sudo apt-get remove libio-socket-inet6-perl
  • Et relancer le service apt-cacher :
    service apt-cacher restart

Désormais le service écoute uniquement en IPv4 :

netstat -na | grep 3142
tcp        0      0 0.0.0.0:3142            0.0.0.0:*               LISTEN

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612963

Voir aussi



Le contenu de ce wiki est sous licence : CC BY-SA v3.0