Les documents proposés sur ce site ont été testés et validés par différentes installations mais ne sauraient engager la responsabilité de la société en cas de problèmes ou de pertes de données si les modifications n'ont pas été réalisées par la société elle même.

Créer un miroir local

Installation du miroir

Cet article va vous apprendre à créer un miroir local d'un dépôt Ubuntu sur un ordinateur équipé d'Ubuntu Hardy Heron 8.04.

Les raisons du miroir

Dans mon cas, il s'agit de pouvoir installer des logiciels sur l'ordinateur même lorsque l'accès au net est impossible (train, correspondances…) et de pouvoir mettre sur un réseau le miroir générer pour les mises à jour. Sans compter que le miroir local permet une rapidité d'accès sans commune mesure avec un miroir sur le net. Synoptique

J'ai la chance d'avoir un portable avec de la place sur le disque dur. Sachez qu'il faut compter environs 37 Go de libre pour le miroir de Hardy aujourd'hui. 40 est un minimum, dans mon cas ce sera 52 Go.

Le portable étant connecté au réseau toutes les nuits, il se mettra à jour vers 6 heures du matin, une heure où je suis sensé dormir.

L'installation d'un serveur apache permettra un accès facile pour les autres ordinateurs du réseau.

Utilisations possibles

  • Permettre à un ordinateur sans accès au net de se mettre à jour ou d'installer des logiciels 1)
  • Mettre à jour un ensemble de machines sans utiliser la bande passante de l'accès au net (le réseau local est plus rapide 2) )
  • Réaliser des installations d'Ubuntu bien plus rapidement
  • Être autonome vis à vis du net pour l'installation de logiciels (démos, …)
  • et bien d'autres choses.

Préparation du miroir

Dans mon cas, il s'agit d'une partition dédiée (sda9) . Comme je possède déjà un autre miroir local sur mon réseau, et afin de sauvegarder de la bande passante et du temps, j'effectue une synchronisation entre le miroir local existant et la partition sda9.

Cette étape n'est absolument pas obligatoire mais mon réseau local Gigabit étant bien plus rapide que le net à 10 Mb, j'aurais tort de m'en priver.

Installation du logiciel

sudo apt-get install apt-mirror

Il faut maintenant éditer le fichier /etc/apt/mirror.list afin d'adapter le fonctionnement à la machine.

Le fichier est simple et parlant :

  • set base_path : emplacement où seront copiés les fichiers. Par défaut, ce sera /var/spool/apt-mirror 3). Dans mon cas, ce sera /ubuntu, emplacement où est monté sda9.

Puisque nous avons modifié la chemin par défaut, et que les répertoires nécessaires sont créés lors de l'installation du programme, il faut créer dans /ubuntu les répertoires mirror, skel, var, puis donner les droits sur ces répertoires à l'utilisateur apt-mirror (ce que nous ferons en dernier).

mkdir -p /ubuntu/mirror /ubuntu/skel /ubuntu/var

Comme nous avons modifié les chemins, copions le fichier de nettoyage au nouvel endroit:

cp /var/spool/apt-mirror/var/clean.sh /ubuntu/var/clean.sh 

Ne touchez pas aux chemins suivants du fichier de configuration à moins que vous ne sachiez ce que vous faites, mais décommentez les lignes si elles sont commentées.

  • set defaultarch: Prend l'architecture du serveur par défaut. Cela correspond à l'architecture voulue du miroir . Dans mon cas: i386
  • set nthreads: 20 par défaut. Définit le nombre de threads qui téléchargeront en parallèle lors de la mise à jour du miroir. Inutile de trop monter ce chiffre: si vous saturez votre bande passante, chaque thread sera limité et vous téléchargerez moins vite tout en consommant plus de processeur.
  • set _tilde (ou set tilde sur les versions avant la 8.04): par défaut 0. Si vous le mettez à 1, permet de remplacer http://addr/~/xxx/yyy par http://addr/%7E/xxx/yyy (sans doute plus portable).

Viennent ensuite les lignes définissant les miroirs que vous voulez cloner en local. Dans mon cas, voici les lignes existantes:

deb http://be.archive.ubuntu.com/ubuntu hardy main restricted universe multiverse
deb http://be.archive.ubuntu.com/ubuntu hardy-updates main restricted universe multiverse
deb http://be.archive.ubuntu.com/ubuntu hardy-security main restricted universe multiverse
deb http://be.archive.ubuntu.com/ubuntu hardy-backports main restricted universe multiverse

#deb-src http://be.archive.ubuntu.com/ubuntu hardy main restricted universe multiverse
#deb-src http://be.archive.ubuntu.com/ubuntu hardy-updates main restricted universe multiverse
#deb-src http://be.archive.ubuntu.com/ubuntu hardy-backports main restricted universe multiverse
#deb-src http://be.archive.ubuntu.com/ubuntu hardy-security main restricted universe multiverse
#deb-src http://be.archive.ubuntu.com/ubuntu hardy-proposed main restricted universe multiverse

clean http://be.archive.ubuntu.com/ubuntu

Il est possible d'utiliser des variables pour simplifier l'écriture et la lecture des adresses du fichier. Exemple:

set mirror1 be.archive.ubuntu.com
set version hardy
set sections "main restricted universe multiverse"

deb http://$mirror1/ubuntu ${version} $sections
deb http://$mirror1/ubuntu ${version}-updates $sections
deb http://$mirror1/ubuntu ${version}-security $sections
deb http://$mirror1/ubuntu ${version}-backports $sections
clean http://$mirror1/ubuntu

Ainsi, si vous voulez cloner deux dépôts, il suffit de dupliquer le bloc et de le modifier pour l'adapter au deuxième dépôt.

La (ou les ) dernière(s) ligne(s) doivent commencer par clean et concerner les miroirs clonés. Elle permettra (pas toujours) de nettoyer le miroir local des paquets n'ayant plus lieu d'être. J'ai pu constater que le lancement manuel de la commande de nettoyage du miroir était plus efficace (au moins sur les versions précédentes de apt-mirror).

Pourquoi utiliser les miroirs belges plutôt que les français, puisque je suis en france ? J'ai pu constater que les miroirs français étaient souvent plus longs à répondre et saturés. Je n'ai jamais eu de problèmes avec les miroirs belges. Sans compter qu'il est probable que les linuxiens belges soient moins nombreux que les linuxiens français, d'où une réponse plus rapide. Ou qu'ils aient des réseau plus adaptés.

Donner les droits sur le répertoire:

sudo chown -R apt-mirror:apt-mirror /ubuntu 

Mise à jour

Très simple!

  • Soit manuellement en lançant la commande apt-mirror
  • Soit automatiquement par le cron:0 6 * * * /usr/bin/apt-mirror

Il faudra attendre parfois quelques jours pour avoir un miroir complet.

Utilisation

En local

Si le miroir n'est destiné qu'à permettre l'utilisation QUE depuis l'ordinateur où il est installé, il n'est pas nécessaire d'installer apache 4)

ajoutez les lignes suivantes dans le fichier /etc/apt/sources.list:

deb file:///ubuntu/mirror/be.archive.ubuntu.com/ubuntu hardy main restricted universe multiverse
deb file:///ubuntu/mirror/be.archive.ubuntu.com/ubuntu hardy-updates main restricted universe multiverse
deb file:///ubuntu/mirror/be.archive.ubuntu.com/ubuntu hardy-security main restricted universe multiverse
deb file:///ubuntu/mirror/be.archive.ubuntu.com/ubuntu hardy-backports main restricted universe multiverse

Lancez ensuite un apt-get update et vous pourrez installer les logiciels sans être connecté au réseau.

Sur le réseau ou en local

Cette solution passe par l'installation d'apache, un serveur web qui permettra à tous d'accéder au miroir. Aucune configuration particulière d'apache n'est nécessaire.

sudo apt-get install apache2

Ensuite, il suffit de faire un lien dans le répertoire d'apache vers le miroir pour qu'il soit accessible par le réseau

cd /var/www
ln -sf /ubuntu/mirror/be.archive.ubuntu.com/ubuntu ubuntu

Si vous voulez pouvoir visualiser votre espace web et le miroir, il faut supprimer le fichier index.html situé à la racine du serveur web:

sudo rm -f /var/www/index.html

Vous pouvez ensuite pointer votre navigateur vers http://localhost et voir un dossier ubuntu qui contient le miroir local

Utilisation en local

Dans le fichier /etc/apt/sources.list, ajoutez les lignes:

deb http://localhost/ubuntu hardy main restricted universe multiverse
deb http://localhost/ubuntu hardy-updates main restricted universe multiverse
deb http://localhost/ubuntu hardy-security main restricted universe multiverse
deb http://localhost/ubuntu hardy-backports main restricted universe multiverse

Cette notation a l'avantage de ne pas nécessiter de connaître l'adresse locale.

Utilisation sur le réseau local

Dans le fichier /etc/apt/sources.list des ordinateurs du réseau local, ajoutez les lignes:

deb http://votre_ip/ubuntu hardy main restricted universe multiverse
deb http://votre_ip/ubuntu hardy-updates main restricted universe multiverse
deb http://votre_ip/ubuntu hardy-security main restricted universe multiverse
deb http://votre_ip/ubuntu hardy-backports main restricted universe multiverse

Remplacez votre_ip par l'adresse ip que vous avez sur le réseau local. Pour que ce soit toujours opérationnel, veillez a avoir toujours la même adresse ip lorsque vous êtes connecté à votre réseau (soit avec un DHCP vous attribuant toujours la même adresse, soit en paramétrant votre ip en statique)

1)
tant qu'ils sont présents dans les dépôts clonés en local
2)
La limitation viendra des capacités du serveur et de son accès réseau
3)
Au passage, comment saturer une partition var, bloquer les impressions cups, ce qui va saturer /var/log d'erreurs et finir par bloquer le système…. Assurez vus d'avoir assez d'espace sur cettepartition si vous gardez l'emplacement par défaut.
4)
bien que cela permette une utilisation plus universelle pour peu de travail supplémentaire

Outils personnels