[[tutoriel:creer_un_miroir_de_depot_local]]
Piste: » creer_un_miroir_de_depot_local
Comment créer un miroir de dépôt local ?
La création d'un miroir pour les paquets va vous permettre de créer et de maintenir la copie conforme de dépôts (officiels ou non) en local. La raison principale est de ne plus avoir besoin de connexion vers le net pour pouvoir installer un paquet ou bien faire des mises à jour. C'est donc une solution pratique et efficace pour une install party, la mise à jour d'un parc de machine (dans ce cas le miroir peut être couplé avec un serveur, un proxy, etc.) ou, pour en finir, la mise à jour ou l'installation chez une personne ne disposant pas d'une connexion vers le net, ou dont la connexion est trop lente (RTC).
Ce n'est donc pas une procédure à prendre à la légère, car vous allez aspirer complètement le contenu d'un ou plusieurs dépôts et les stocker dans un répertoire. Ce répertoire peut être sur un disque dur interne ou externe et il vous faudra une connexion internet conséquente. Pour l'exemple, j'ai mis dans les 16 heures pour aspirer les 15 Gio (sans les sources) des dépôts officiels pour la 7.04 avec une connexion à 8 Mbps. Je peux donc maintenant installer une Ubuntu 7.04 sur un PC sans accès à Internet, le mettre à jour et ajouter n'importe quel paquet et ses dépendances du moment qu'il existe sur les dépôts officiels.
Si votre but n'est que de partager des paquets que vous avez déjà téléchargés, il vous faut regarder du coté de apt-cacher ou bien sur ce guide : Mettre en place un dépôt local.
Installation de « apt-mirror »
C'est très simple : il suffit d'installer le paquet « apt-mirror ».
Préparation de votre sauvegarde
Dans mon exemple, je vais configurer un disque dur externe. Mais un autre emplacement est possible tant que vous en connaissez le chemin complet. Cela peut donc être un simple répertoire dans votre compte utilisateur.
Le cas du disque externe est celui que j'utilise. Mon disque dur se balade de mon boulot où j'ai un gros accès internet, à mon chez moi où la connexion est plus modeste et jusqu'à mes parents (sans internet) ou mes amis.
Mon disque dur est automatiquement monté sous « /media/DDPortable ». Nous allons donc créer un répertoire nommé « miroir » qui contiendra le miroir complet :
mkdir /media/DDPortable/miroir
Dans celui-ci, nous avons besoin de créer 3 sous-répertoires afin que apt-mirror puisse fonctionner :
mkdir /media/DDPortable/miroir/mirror mkdir /media/DDPortable/miroir/skel mkdir /media/DDPortable/miroir/var
Ces répertoires peuvent être tout aussi bien créés en utilisant Nautilus et sa possibilité de créer des dossiers.
Configuration de « apt-mirror »
Par défaut, apt-mirror utilise son propre fichier de configuration : /etc/apt/mirror.list.
Soit vous modifiez ce fichier, ce qui me semble être la bonne solution dans le cas d'un serveur, soit vous en créez un nouveau que vous sauvegarderez dans votre miroir.
Je vais donc prendre cette dernière solution. Il vous faudra néanmoins dans ce cas spécifier à apt-mirror d'utiliser votre propre fichier de configuration comme ceci :
apt-mirror /media/DDPortable/miroir/apt-mirror-configuration
Création du fichier de configuration
Éditez le fichier « /media/DDPortable/miroir/apt-mirror-configuration » (votre fichier de configuration) afin que celui-ci contienne :
set base_path /media/DDPortable/miroir 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 4 set tilde 0 deb http://archive.ubuntu.com/ubuntu/ hardy main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy main/debian-installer clean http://archive.ubuntu.com/ubuntu
Les lignes dont vous devez vous soucier sont :
set base_path /media/DDPortable/miroir
Elle est à adapter à votre cas.
set defaultarch i386
Cette ligne précise que je ne désire récupérer que les paquets pour l'architecture i386.
Si vous voulez avoir plusieurs architectures dans votre miroir il suffit de le préciser dans les dépots comme ceci
############# config ################## # set base_path /media/Backup/apt-mirror # # if you change the base path you must create the directories below with write privileges # 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 xxxx (votre architecture i386/hppa/powerPC/ia64...) set defaultarch i386 set nthreads 2 set tilde 0 # ############# end config ############## deb http://archive.ubuntu.com/ubuntu/ hardy main restricted deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted deb http://archive.ubuntu.com/ubuntu/ hardy-security main restricted deb http://archive.ubuntu.com/ubuntu/ hardy universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse deb http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse deb http://packages.medibuntu.org/ hardy free non-free deb-amd64 http://packages.medibuntu.org/ hardy free non-free deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security main restricted deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-updates universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-security universe multiverse deb-amd64 http://archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
Explication : deb seul revient a dire deb-i386, car c'est l'architecture de base dans la configuration, tandis que pour les autres il faut le déclarer avec deb-amd64 deb-'autre-architecture' (trouvé sur le forum de apt-mirror)
Viennent ensuite 4 lignes qui précisent quels sont les dépôts dont je souhaite faire une copie. Ces 4 lignes sont ceux par défaut pour l'installation d'une Feisty, libre à vous de les modifier et/ou d'en ajouter. Il faudra cependant en tenir compte lors de l'intégration de votre miroir (voir la section « Utilisation de votre miroir »).
Sauvegardez votre fichier. Dans mon cas il se nomme « apt-mirror-configuration » et il est sauvé dans « /media/DDPortable/miroir/ ».
Récupération des paquets
Lancez la création de votre miroir par :
apt-mirror /media/DDPortable/miroir/apt-mirror-configuration
Note : je rappelle que si vous ne passez pas de fichier de configuration à la commande apt-mirror, c'est celui par défaut qui sera utilisé (« /etc/apt/mirror.list »).
- Dans un premier temps apt-mirror récupère la liste du contenu des miroirs demandés.
- Dans un second temps apt-mirror vous indique la taille totale des paquets qu'il lui faut télécharger (dans notre fichier d'exemple cela représente environ 15 Gio).
- Vous pouvez allez boire plusieurs cafés, même manger, fumer (beaucoup) et dormir… à moins de disposer d'une connexion de folie.

Si vous voulez surfer sur le net en meme temps vous devriez installer wondershaper sur votre miroir.
Utilisation de votre miroir
Directement
Nous avons donc un disque dur externe contenant un miroir de nos dépôts préférés. Comment le faire prendre en compte par le système afin que celui-ci utilise notre miroir plutôt qu'en passant par le net ?
Il faut modifier temporairement le fichier de configuration des sources du système (« /etc/apt/sources.list ») afin de lui indiquer d'utiliser notre miroir.
Pour ce faire nous allons ouvrir un terminal et :
- Faire une sauvegarde de ce fichier :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.ORIGINAL
- Ouvrir le fichier « /etc/apt/sources.list ».
- Supprimez-en tout le contenu.
- Ajoutez :
deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ hardy main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ hardy-updates main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ hardy-security main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ hardy-backports main restricted universe multiverse
Ces 4 lignes reflètent les 4 lignes se trouvant dans le fichier de configuration de apt-mirror (« /media/DDPortable/miroir/apt-mirror-configuration ») que je vous ai données. Attention donc aux chemins que vous avez utilisez, ainsi qu'aux dépôts supplémentaires dont vous avez fait la copie.
- Sauvegardez votre fichier.
- Mettez à jour votre système de gestion de paquet :
sudo apt-get update
- Désormais votre système utilise uniquement votre miroir. Vous pouvez donc faire vos manipulations, installations ou mises à jour de la manière dont vous le souhaitez.
À distance, en passant par un serveur
Côté serveur
On va installer un serveur HTTP bien connu … Apache. C'est le paquet « apache2 ».
On peut tester son bon fonctionnement en se rendant sur http://localhost/.
Par défaut la base où se situent les documents pour apache est « /var/www » or notre miroir est ici : « /media/DDPortable/miroir/ ». Nous allons donc créer un lien symbolique afin qu'Apache puisse nous servir nos paquets :
sudo ln -s /media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ /var/www/
Si l'on retourne sur http://localhost/ on y découvre un nouveau répertoire « ubuntu ».
Côté client
On sauvegarde le fichier de configuration :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.ORIGINAL
On va éditer le fichier « /etc/apt/sources.list » afin de le faire pointer vers notre serveur.
sudo gedit /etc/apt/sources.list
Là où vous avez une ligne du style
deb http://archive.ubuntu.com/ubuntu/ hardy-updates main restricted multiverse universe
vous allez devoir remplacer l'adresse internet du serveur original par celui que vous avez spécialement installé. Si mon serveur est sur l'adresse 192.168.1.101 je modifie ma ligne et j'obtiens :
deb http://192.168.1.101/ubuntu/ hardy-updates main restricted multiverse universe
On fait cette manipulation pour chaque entrée ou ligne et on sauvegarde.
On fait prendre en compte le nouveau fichier de configuration par un :
sudo apt-get update
et vous voilà prêt à utiliser votre miroir et serveur local.
Enlever votre miroir du système
Avant de partir il vous faut restaurer la configuration initiale du système de paquet. Nous allons donc remettre en état le système.
- Sauvegarde de votre fichier modifié :
sudo cp /etc/apt/sources.list /etc/apt/sources.list.MIROIR
- Remise en place du fichier original :
sudo rm /etc/apt/sources.list sudo cp /etc/apt/sources.list.ORIGINAL /etc/apt/sources.list
- Prise en compte de celui-ci par le système :
sudo apt-get update
Mise à jour de votre miroir
Manuellement
Il suffit pour cela de relancer apt-mirror avec votre fichier de configuration et votre disque dur externe en place (ou votre miroir accessible selon le chemin indiqué dans la configuration de apt-mirror) :
apt-mirror /media/DDPortable/miroir/apt-mirror-configuration
Automatiquement
Tout est prêt. Il suffit juste de décommenter une ligne dans le fichier « /etc/cron.d/apt-mirror »
sudo gedit /etc/cron.d/apt-mirror
On enlève le « # » de la ligne :
#0 4 * * * apt-mirror /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
On ajoute le fichier de configuration si celui-ci n'est pas celui par défaut et on en profite pour modifier l'heure afin d'obtenir :
0 13 * * * apt-mirror /usr/bin/apt-mirror /media/DDPortable/miroir/apt-mirror-configuration > /var/spool/apt-mirror/var/cron.log
On sauvegarde et c'est tout. Tous les jours, à 13 heures, le miroir se mettra à jour.
Cas d'une Install Party
Dans le cas d'une Install Party, pensez a ajouter aussi les dépôts nécessaires pour une netinstall :
deb http://archive.ubuntu.com/ubuntu hardy main/debian-installer restricted/debian-installer universe/debian-installer multiverse/debian-installer deb http://archive.ubuntu.com/ubuntu hardy-updates main/debian-installer restricted/debian-installer universe/debian-installer deb http://archive.ubuntu.com/ubuntu hardy-backports main/debian-installer deb http://archive.ubuntu.com/ubuntu hardy-security main/debian-installer restricted/debian-installer universe/debian-installer # deb http://archive.ubuntu.com/ubuntu hardy-proposed main/debian-installer restricted/debian-installer universe/debian-installer
Nota : Il existe un logiciel qui semble remplir les mêmes fonctions de façon bien plus simple : falcon qui est dispo dans les dépôts Ubuntu universe.