Cette page n'a pas encore d'étiquettes.
Apportez votre aide…

Ceci est une ancienne révision du document !


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).

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)
  1. Vous cliquez sur RECHERCHE, vous rentrez apt-mirror et vous validez.
  2. Vous ne devriez obtenir qu'une seule réponse : apt-mirror.
  3. Un clic droit dessus - sélectionnez le pour installation.
  4. Vous validez l'installation par le bouton APPLIQUER dans la barre d'icônes.

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.

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/.

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 ;-).

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.

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

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 :-)

  • tutoriel/creer_un_miroir_local.1177516980.txt.gz
  • Dernière modification: Le 18/04/2011, 14:51
  • (modification externe)