Le service apt-mirror permet de créer un dépot local GNU/Linux Debian et dérivés (Ubuntu, Mint...).
Une fois le service installé et configuré, le serveur télécharge la totalité des logiciels des dépots distants (il les met en cache).
Les clients n'ont plus qu'à se servir et profitent donc de la bande passante du réseau local.
Utiliser le dépot local pour mettre à jour son systeme
Lancez le terminal et identifiez vous en tant que root
Placez vous dans le répertoire /etc/apt/
Renommez le fichier sources.list
- mv sources.list sources.old
Créez un nouveau fichier sources.list
Ajoutez les dépots de la liste ci-dessous correspondant à votre distribution
Sauvegardez le fichier
Test
Configurer un dépot apt-mirror avec Debian ou Ubuntu
Identifiez vous en tant que root sur votre serveur (via le terminal ou ssh)
Installer l'utilitaire apt-mirror
- #Debian:
aptitude install apt-mirror
#Ubuntu:
sudo apt-get apt-mirror
Configuration de la synchronisation avec les dépots Debian (Squeeze) et/ou Ubuntu (Precise)
Le répertoire par défaut utilisé par apt-mirror est : /var/spool/apt-mirror
Nous allons utiliser un autre répertoire : /srv/apt-mirror
Création de l'arborescence
- cd /srv
mkdir -p /srv/apt-mirror/{mirror,skel,var}
cp /var/spool/apt-mirror/var/*.sh /srv/apt-mirror/var/
mkdir www
chown -R apt-mirror:apt-mirror /srv/apt-mirror
chown -R www-data:www-data /srv/www
Modification du fichier de configuration de apt-mirror (/etc/apt/mirror.list)
- #Debian:
nano /etc/apt/mirror.list
#Ubuntu:
sudo nano /etc/apt/mirror.list
La partie CONFIG est à modifier de cette manière
- ############# config ##################
#
set base_path /srv/apt-mirror
#
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 i386
set postmirror_script $var_path/postmirror.sh
# set run_postmirror 0
set nthreads 20
set _tilde 0
#
############# end config ##############
Dans le même fichier, plus bas, rensseigner les dépots à synchroniser (à adapter selon les besoins):
- # DEBIAN DEPOSIT x86
deb http://ftp.fr.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb http://security.debian.org/ squeeze/updates main contrib non-free
deb http://www.las.ic.unicamp.br/pub/debian-multimedia/ stable main
deb http://backports.debian.org/debian-backports squeeze-backports main
# UBUNTU 12.04 DEPOSIT x86
deb http://fr.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ precise-security main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
# UBUNTU 12.10 DEPOSIT x86
deb http://fr.archive.ubuntu.com/ubuntu/ quantal main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ quantal-security main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ quantal-updates main restricted universe multiverse
Une fois les modifications effectuées, enregistrer le fichier (CTRL+X) et éxécuter la commande suivante:
- #Debian:
apt-mirror
#Ubuntu:
sudo apt-mirror
Le téléchargement démarre. Les dépots listés ci-dessus représentent environ 100Go de données à rapatrier (Avril 2013).
Une fois tous les fichiers récupérés, il faut rendre le dépot disponible en HTTP.
Installer le service Apache2
- #Debian:
aptitude install apache2
#Ubuntu:
sudo apt-get install apache2
Une fois l’installation du service Apache2 terminée, éditer le fichier de site par défaut:
- #Debian:
nano /etc/apache2/sites-available/default
#Ubuntu:
sudo nano /etc/apache2/sites-available/default
Modifier les 2 lignes suivantes
- DocumentRoot /var/www
en
DocumentRoot /srv/www
<Directory /var/www/>
en
<Directory /srv/www/>
Enfin il ne reste plus qu’a faire deux liens symboliques pour rendre le dépôt disponible et créer une tâche planifiée afin que le dépôt se mette a jour quotidiennement.
Création des liens symboliques (à adapter selon l'url des dépots renseignés dans mirror.list)
- ln -s /srv/apt-mirror/mirror/fr.archive.ubuntu.com/ubuntu /srv/www/ubuntu
ln -s /srv/apt-mirror/mirror/ftp.fr.debian.org/debian /srv/www/debian
Création de la tâche planifiée
- #Debian:
nano /etc/cron.d/apt-mirror
#Ubuntu:
sudo nano /etc/cron.d/apt-mirror
Modifier la ligne suivante
- #0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
en
0 4 * * * apt-mirror /usr/bin/apt-mirror > /srv/apt-mirror/var/cron.log
Le dépôt s'actualisera quotidiennement à 04h.
Créer un petit fichier Bash pour lancer manuellement le processus de mise à jour
- #!/bin/bash
rm /srv/apt-mirror/var/apt-mirror.lock
apt-mirror
Redémarrez Apache2
- /etc/init.d/apache2 restart