Ceci est une ancienne révision du document !
Introduction
La création d'un miroir pour les paquets va vous permettre 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).
Installation de apt-mirror
Il nous faut dans un premier temps récupérer et installer la dernière version disponible du paquet nommé apt-mirror :
- Avec le terminal :
sudo apt-get install apt-mirror
- Avec synaptic (Système/Administration/Gestionnaire de paquets)
- Vous cliquez sur RECHERCHE, vous rentrez apt-mirror et vous validez.
- Vous ne devriez obtenir qu'une seule réponse : apt-mirror.
- Un clic droit dessus - sélectionnez le pour installation.
- Vous validez l'installation par le bouton APPLIQUER dans la barre d'icônes.
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. Ce 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 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éé 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 qui est accessible ici :
/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 :
gedit /media/DDPortable/miroir/apt-mirror-configuration
Grâce à votre éditeur préféré vous éditez 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/ feisty main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ feisty-updates main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ feisty-security main restricted universe multiverse deb http://archive.ubuntu.com/ubuntu/ feisty-backports main restricted universe multiverse 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. A COMPLETER !!!!
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 chapitre 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
Nota : 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 15Go).
- Vous pouvez allez boire plusieurs cafés, voir même manger et dormir… à moins de disposer d'une connexion de folie
.
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 :
sudo gedit /etc/apt/sources.list
- Supprimez en tout le contenu.
- Ajoutez :
deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ feisty main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ feisty-updates main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ feisty-security main restricted multiverse universe deb file:/media/DDPortable/miroir/mirror/archive.ubuntu.com/ubuntu/ feisty-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 ais donné. 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/mises à jour de la manière dont vous le souhaitez (ligne de commande/synaptic/Ajouter-enlever…).
À distance, en passant par un serveur
Coté serveur
On va installer un serveur http bien connu… apache
sudo apt-get install apache2
On peut tester son bon fonctionnement en se rendant sur http://localhost
Par défaut la base de où se situe les documents pour apache est /var/www hors 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/ubuntu
Si l'on retourne sur http://localhost on y découvre un nouveau répertoire ubuntu
Coté 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/ feisty-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/ feisty-updates main restricted multiverse universe
On fait cette manipulation pour chaque entrées/lignes 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 à 13H le miroir se mettra à jour
- Plus d'informations sur cron ici http://doc.ubuntu-fr.org/cron