Créer son miroir local Ubuntu et Debian

Voici un tuto basé sur APT-MIRROR pour vous aider à créer un ou des miroirs locaux pour les dépôts Ubuntu et Debian.
Le premier pré-requis concerne l’espace disque à allouer. Comptez environ 50 à 60 Go pour l’ensemble des dépôts stables Debian main contrib non-free, security et volatile, et stables Ubuntu, updates, security main universe multiverse restricted.
Dans ce tuto les miroirs seront stockés sur un disque externe attaché à un serveur Debian Lenny et toutes les commandes sont tapées en root (pas bien :-))

on installe apt-mirror
apt-get install apt-mirror

Ensuite on crée le point de montage du disque externe par exemple dans /mnt ici mon disque est /dev/sde2 (pour connaitre les partitions de vos disques à monter faîtes cat /proc/partitions)

mkdir /mnt/miroirs
mount /dev/sde2 /mnt/miroirs

On peut créer également une entrée dans le fstab:

/dev/sde2	/mnt/miroirs	ext3	defaults	0	0

On crée l’arborescence dans /mnt/miroirs:

mkdir -p /mnt/miroirs/{mirror,skel,var}
chown -R apt-mirror:apt-mirror /mnt/miroirs
chmod -R 755 /mnt/miroirs

on passe ensuite à la configuration de APT-MIRROR. Le fichier est /etc/apt/mirror.lists voici le mien expliqué:

############# config ##################
#
set base_path /mnt/miroirs
#
# 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 i386
set nthreads 20
set _tilde 0
#
############# end config ##############
#Ubuntu Karmic Koala
deb http://fr.archive.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb http://fr.archive.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu karmic-security main restricted universe multiverse
#
#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://fr.archive.ubuntu.com/ubuntu
clean http://ftp.fr.debian.org/debian
clean http://security.debian.org
clean http://volatile.debian.org/debian-volatile

La directive set base_path spécifie où va être le miroir ici dans /mnt/miroirs (par défaut dans /var/spool/apt-mirror)
On décommente les lignes qui viennent après.
La directive set defaultarch i386 spécifie que l’on ne veut les paquets destinés uniquement aux architectures i386
La directive set nthreads 20 spécifie que l’on souhaite 20 instances de téléchargemement simultanées.

Après ############# end config ##############, on trouve les dépôts que l’on souhaite répliquer.
Les directives à la fin du fichier servent à libérer un peu d’espace disque le cas échéant.

Voilà tout est fin prêt on peut lancer la synchronisation:

 apt-mirror /etc/apt/mirror.list
Downloading 60 index files using 20 threads...
Begin time: Fri Nov  6 11:22:02 2009
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]... 
End time: Fri Nov  6 11:22:07 2009

Proceed indexes: [PPPPPP]

0.0 bytes will be downloaded into archive.
Downloading 0 archive files using 0 threads...
Begin time: Fri Nov  6 11:22:21 2009
[0]... 
End time: Fri Nov  6 11:22:21 2009

Ici apt-mirror ne télécharge rien (0.0 bytes will be downloaded into archive.
Downloading 0 archive files using 0 threads…
Begin time: Fri Nov 6 11:22:21 2009
[0]…
End time: Fri Nov 6 11:22:21 2009) car mon miroir est mis à jour toutes les demi-heures.

A la fin du téléchargement (12 heures chez moi) les miroirs sont répliqués. Nous allons maintenant créer des liens symboliques vers /var/www afin de «servir» les paquets aux machines clientes:

ln -s /mnt/miroirs/mirror/volatile.debian.org/debian-volatile /var/www/debian-volatile
ln -s /mnt/miroirs/mirror/security.debian.org/ /var/www/debian-security
ln -s /mnt/miroirs/mirror/ftp.fr.debian.org/debian /var/www/debian
ln -s /mnt/miroirs/mirror/security.ubuntu.com /var/www/ubuntu-security
ln -s /mnt/miroirs/mirror/fr.archive.ubuntu.com /var/www/ubuntu

On modifie maintenant les sources.list des machines clientes:

леглаDebian Lenny:

vim /etc/apt/sources.list

deb http://127.0.0.1/debian/ lenny main contrib non-free
deb http://127.0.0.1/debian-security/ lenny/updates main contrib non-free
deb http://127.0.0.1/debian-volatile/ lenny/volatile main contrib non-free

Comme vous pouvez le constater l’ip est locale car c’est ce serveur qui héberge les miroirs

Ubuntu Karmic:

deb http://IP_Serveur/ubuntu/ karmic main restricted universe multiverse
deb http://IP_Serveur/ubuntu/ karmic-updates main restricted universe multiverse
deb http://IP_Serveur/ubuntu-security/ karmic-security main restricted universe multiverse

On update les dépôts:

apt-get update

et c’est fait !!!

On automatise les synchros des mirroirs:

crontab -e
*/30 * * * *	/usr/bin/apt-mirror /etc/apt/mirror.list

Ici toutes les demi-heures.

5 thoughts on “Créer son miroir local Ubuntu et Debian

  1. Salut,

    Sympa ton billet, et bien expliqué.
    Ça ma rassuré dans la configuration que j’avais fait d’apt-mirror.

    Par contre, je suis pas sur qu’autorise 20 sessions simultanées soit une bonne chose. En effet tu vas ainsi créer 20 connexion sur le serveur pour un gain de temps pas forcément très important. Personnellement, j’ai mis 5, ce qui me parait plus respectueux des serveurs.

    Cordialement,
    Beware

  2. Pingback: Costalfy (costalfy) 's status on Friday, 06-Nov-09 14:31:43 UTC - Identi.ca

  3. Salut,

    Sais-tu si il y a un verbose mode avec apt-mirror et comment l’activer ?

    Je sais bien qu’il y a les fichiers de log mais c’est pas tres pratique !

  4. Pingback: Technoaddict » Synchroniser les paquets de traduction sur son miroir local avec apt-mirror

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *