Créer un miroir local Ubuntu

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.

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

  • 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

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

Note: 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 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
(1) 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….

Articles en relation:

4 réflexions sur « Créer un miroir local Ubuntu »

  1. Je suis membre de la Fondation Maracouja qui est une association sans but lucratif en République démocratique du Congo dont l’objectif est la lutte contre la fracture numérique par la promotion et le développement des logiciels libres.
    Roger Malongo cherche:

    Vu ce souci de logiciel libre nous avons projeter de placer un miroir local au pays.
    En effet j’ai été chargé par la fondation pour recueillir les informations sur l’emplacement de miroirs locaux en république démocratique du congo et je veux savoir qu’est-ce-qu’il faut? quelle sorte de serveur s’agit’il? qelles sortes d’équipements doit’on avoir? et de quelles possibilités pouvont-nous atteindre des gens qui peuvent nous donner des sons pour faciliter cet installation qui va désenclaver le pays en matière de logiciel libre.
    Merci pour la bonne compréhension.

  2. Un miroir va être placé sur un serveur. « Serveur » dans le sens où il va offrir un service. N’importe quelle machine peut faire office de server. Mon serveur local est un Pentium II 400 Mhz avec 256 Mo de RAM, donc pas une machine très puissante.
    Mais je suis seul à l’utiliser!
    Les questions à se poser sont:
    1- quel est le débit réseau disponible au niveau du serveur ? Si le réseau est de 10Mb/s, inutile de mettre une carte réseau à 100Mb/s. Inutile de prendre une machine puissante, elle ne pourra envoyer les informations qu’à la vitesse du réseau.
    2- Le serveur va t-il fonctionner sur le réseau local ou par internet? En local, en 100Mb/s, c’est la vitesse d’installation des clients qui ralentira le fonctionnement, le serveur attendra la prochaine demande. Par internet, ça ira certainement plus vite que télécharger depuis les miroirs français, mais dépendra surtout du débit disponible.
    3- combien de clients vont se connecter ? Si le réseau est apte à fournir 100 clients simultanés, le serveur doit suivre, donc il a besoin de puissance (principalement de la RAM)
    Il faut voir le fonctionnement comme une conversation entre deux personnes. Si l’un des correspondant bégaye ou est lent, la communication se fera à la vitesse la plus lente. Si l’un des correspondant doit effectuer plusieurs conversations en même temps avec plusieurs personnes, il doit penser beaucoup plus vite pour passer de l’une à l’autre rapidement.
    L’idéal est que le site soit hébergé dans le pays (distance internet plus courte), près d’un backbone (débit disponible maximum) et soit puissant (beaucoup de clients en même temps).
    Dans la pratique, on fait au mieux. L’avantage avec linux, c’est qu’il suffit de mettre le disque sur une nouvelle machine, et ça fonctionne (avec quelques petits ajustements), donc on peut démarrer avec à peu près n’importe quel ordinateur, et faire évoluer en fonction des constatations des goulets d’étranglement sur le service.
    Par contre, j’ignore comment sont les abonnements internet au congo, mais si vous payez au volume, attention aux coûts de bande passante.

  3. bonjour; je suis étudiant en système et réseau informatique en République Démocratique du Congo (L’shi) et je trouve que c’est une idée géniale de pouvoir mettre en place des serveurs miroirs dans notre pays pour ne pas toujours avoir à dépendre des serveur étranger. Ce serait vraiment génial de télécharger les paquets depuis les serveurs du Congo . Mais hélas; c’est un grand projet! la connexion internet étant encore une ressource assez rare dans notre pays. En ce qui concerne le matériel à utiliser il n’y a pas vraiment des gros investissements à faire; j’utilise déjà mon portable comme miroir dans mon petit LAN. Ce qui craint c’est la connexion internet!! Que c’est cher mon Dieu…..!

  4. Ping : Faire un miroir avec apt-mirror de raspberry.org | Astuces d'Absolacom

Les commentaires sont fermés.