Ayant plusieurs machines fonctionnant sous Debian, je trouvais qu’il était particulièrement pénible de lancer les mises à jour et d’encombrer ma ligne ADSL pour faire exactement la même chose sur chacune d’entre-elles.
J’ai donc commencer à chercher comment créer un dépôt local qui me permettrai non seulement de gagner du temps mais aussi d’alléger le trafic passant sur ma ligne.
C’est ainsi que j’ai découvert apt-mirror
Lorsque l’on souhaite installer localement (chez soi dans mon cas) un miroir, cela implique d’avoir une liaison internet (ADSL de préférence) et un espace de stockage suffisant sur le disque destiné à accueillir celui-ci.
Le disque ou la partition doit avoir entre 200 et 500 Go d’espace disque de disponible.
Actuellement, mon miroir de Jessie pèse 280 Go. J’ai donc encore de la place sur une partition de 400 Go.
La procédure est tout à fait standard.
aptitude apt-mirror
Pour commencer, il faut créer les répertoires mirror, skel et var.
mkdir -p /home/apt-mirror/{mirror,skel,var}
Une fois les répertoires créés il convient de les attribuer à l’utilisateur apt-mirror afin de permettre à notre miroir de parfaitement fonctionner.
Sans oublier, bien sûr, de positionner les droits adéquats sur les répertoires.
chown -R apt-mirror:apt-mirror /home/apt-mirror
chmod -R 755 /home/apt-mirror
Une fois ceci fait nous passons à la phase de configuration du miroir.
Le fichier mirror.list est situé dans le répertoire /etc/apt.
C’est ce fichier de configuration qui réglera à la fois les options de apt-mirror, mais aussi contiendra le sources.list permettant la création du miroir. Voici comment se présente /etc/apt/mirror.list.
############# config ##################
#
set base_path /home/apt-mirror
#
# 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
set defaultarch amd64 (ou i386 pour les systèmes 32 bits)
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
deb-amd64 http://ftp.fr.debian.org/debian/ testing main contrib non-free
deb-amd64 http://security.debian.org/ testing/updates main contrib non-free
deb-amd64 http://ftp.fr.debian.org/debian/ testing-proposed-updates main contrib non-free
Les lignes qui suivent end config correspondent en tout points à celles que l’on retrouve dans le sources.list habituel.
Une fois les modifications effectuées dans le fichier de configuration, il ne reste plus qu’à synchroniser notre miroir local avec celui que nous avons choisi sur le net en étant root.
apt-mirror /etc/apt/mirror.list
Même avec une bonne connexion la première synchronisation va prendre beaucoup de temps. Donc, l’idéal est de lancer celle-ci le soir avant d’aller se coucher. Cela vous évitera de trépigner en attendant qu’elle se finisse.
aptitude install apache2
Pour rendre le miroir accessible à nos machines clientes du réseau local nous créons deux liens symboliques.
ln -s /home/apt-mirror/mirror/security.debian.org/ /var/www/debian-security
ln -s /home/apt-mirror/mirror/ftp.fr.debian.org/debian /var/www/debian
Faire une copie de votre sources.list avant de le modifier est, bien sûr, une précaution élémentaire.
deb http://xxx.xxx.xxx.xxx/debian/ jessie main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian/ jessie-proposed-updates main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian-security/ jessie/updates main contrib non-free
deb http://xxx.xxx.xxx.xxx/debian/ jessie-backports main
La notation xxx.xxx.xxx.xxx est bien sûr à remplacer par l’adresse de votre serveur local.
Pour ce faire, il suffit de placer une simple ligne dans la crontab de root.
Dans l’exemple donné, la synchronisation est effectuée au boot du serveur qui chez moi ne tourne pas 24h sur 24.
@reboot /usr/bin/apt-mirror /etc/apt/mirror.list
Une fois la synchronisation du miroir local effectuée, il ne reste plus qu’à faire la mise à jour des machines clientes avec un aptitude update
.
J’espère que cet article vous sera utile et vous permettra, tout comme à moi, de gagner non seulement de la bande passante sur votre connexion internet, mais aussi du temps grâce à la vitesse de votre réseau personnel.
Commentaires