Miroir local d'un dépot Debian
Si l’on administre beaucoup de machines sous Debian, ou si l’on installe
souvent des machines, il peut être intéressant d’avoir une copie locale
des dépots afin d’améliorer le temps d’accès.
La distribution Debian, et ses dérivées comme Ubuntu, propose des outils
permettant de réaliser cette copie simplement.
Les outils nécessaires
Pour faire cette copie, il faut installer apt-mirror, en tant que root, utiliser la commande :
apt-get install apt-mirror
Pour Ubuntu, il faudra précéder cette commande de sudo.
Les répertoires du miroir
Pour mes tests, j’ai utilisé une partition disponible qui a été montée
dans le dossier /montage
avec la commande :
mkdir /montage
mount /dev/hda4 /montage
Pour accueillir le contenu du dépot, il faut créer un certains nombre de dossiers, cela se fait avec la commande suivante :
mkdir -p /montage/depot/{mirror,skel,var}
Il faut ensuite modifier le propriétaire de ces dossiers, ils doivent appartenir au compte apt-mirror qui a été créé lors de l’installation de l’outil. Il faut utiliser la commande :
cd /montage
chown -R apt-mirror:apt-mirror depot
Il faut que le système de fichier devant accueillir le miroir du dépot soit assez grand, une copie du mirroir de Lenny en 32 bits occupe 24Go.
La configuration
Un exemple de configuration de l’outil apt-mirror est donnée dans le
fichier /etc/apt/mirror.list
.
Pour séparer la configuration mise en place de celle livrée par défaut,
il faut créer un dossier et y copier la modèle de configuration :
mkdir /monatge/depot/config
cp /etc/apt/mirror.list /monatge/depot/config/.
Il faut ensuite adapter ce fichier à son besoin, voila ce que cela donne pour une copie de Debian Lenny en 32bits :
############# config ##################
#
# Definition du repertoire racine du miroir local
# set base_path /var/spool/apt-mirror
set base_path /montage/depot
#
# if you change the base path you must create the directories below with write privlages
#
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
# set cleanscript $var_path/clean.sh
# Architecture par defaut
set defaultarch i386
# Nombre de connexions ouvertes en parallele pour le telechargement
#set nthreads 20
set nthreads 5
set _tilde 0
#
############# end config ##############
#Debian Lenny
deb http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb http://security.debian.org/ lenny/updates main contrib non-free
deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
clean http://ftp.fr.debian.org/debian
clean http://security.debian.org
clean http://volatile.debian.org/debian-volatile
Si l’on veut réaliser un miroir avec les architectures 32 et 64 bits, il faut utiliser la syntaxe suivante pour décrire l’adresse source des dépots 64 bits:
#Debian Lenny
deb-amd64 http://ftp.fr.debian.org/debian/ lenny main contrib non-free
deb-amd64 http://security.debian.org/ lenny/updates main contrib non-free
deb-amd64 http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
Activer la copie
Pour lancer la création du miroir local, il faut utiliser la commande
apt-mirror /montage/depot/config/mirror.list
Pour la première copie, il faut être patient :
$ date ; apt-mirror /montage/depot/config/mirro.list ; date
samedi 21 novembre 2009, 17:10:12 (UTC+0100)
Downloading 27 index files using 5 threads...
Begin time: Sat Nov 21 17:10:12 2009
[5]... [4]... [3]... [2]... [1]... [0]...
End time: Sat Nov 21 17:11:10 2009
Proceed indexes: [PPP]
22.8 GiB will be downloaded into archive.
Downloading 24073 archive files using 5 threads...
Begin time: Sat Nov 21 17:11:17 2009
[5]... [4]... [3]... [2]... [1]... [0]...
End time: Sun Nov 22 02:46:54 2009
Utiliser le dépot
Une fois la copie réalisée sur une machine locale, il faut rendre
accessible ces répertoires depuis une instance web.
Il faut créer les liens permettant d’accéder aux fichiers :
cd /var/www
ln -s /montage/depot/mirror/security.debian.org
ln -s /montage/depot/mirror/ftp.fr.debian.org/debian
ln -s /montage/depot/mirror/volatile.debian.org/debian-volatile
Enfin, il faut modiifer le fichier sources.list pour le faire pointer vers le miroir :
deb http://<adresse du miroir>/debian/ lenny main contrib non-free
deb http://<adresse du miroir>/debian-security/ lenny/updates main contrib non-free
deb http://<adresse du miroir>/debian-volatile/ lenny/volatile main contrib non-free
Liens
Quelques informations complémentaires sur le forum Ubuntu-Fr.