Miroir Debian

De ClissXXI.

Si vous allez chez des clients démunis d'un accès haut débit, un miroir Debian partiel doit faire partie de votre kit de survie.

Tentons donc de créer un miroir:

  • Utilisation de debmirror:
aptitude install debmirror
  • Télécharger les clefs GPG:
gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005
gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
  • Lancer la réplication:
rm /etc/debmirror.conf  # it would conflict with our settings

# Sarge
debmirror --verbose --host=ftp2.fr.debian.org --dist=sarge --dist=stable \
   --section=main,main/debian-installer --nosource --getcontents \
   /mnt/mirrors/debian

# Sarge security
debmirror --verbose --host=security.debian.org --dist=sarge/updates \
   --root=debian-security  --section=main --nosource \
   /mnt/mirrors/debian-security

# Sarge backports
debmirror --verbose --host=www.backports.org --method=http \
   --dist=sarge-backports --section=main --nosource --getcontents \
   /mnt/mirrors/backports.org

Il est possible d'interrompre la réplication et de la reprendre plus tard.

Il est également possible d'utiliser plusieurs fois l'option --dist, par exemple --dist=sarge --dist=etch. Ici on récupère à la fois 'sarge' et 'stable' de sorte que les deux soient disponibles (les logiciels peuvent utiliser alternativement un nom ou l'autre) - bien entendu les paquets eux-mêmes ne seront téléchargés qu'une seule fois, dans pool/.

--getcontents permet de récupérer le fichier Content-i386.gz, utilisé notamment par apt-file. Il n'est pas fourni par security.debian.org pour le moment, et demander --getcontents est considéré comme une erreur (plus de mise à jour de Packages.gz - à corriger).

Inconvénients:

  • Il y a une perte de place, car les paquets qui ont eu une mise à jour de sécurité sont téléchargés dans mirrors/debian, et redondants par rapport à mirrors/debian-security. Pourrait-il y avoir des problèmes avec l'installateur Debian si la version d'origine de ces paquets manque, cependant?
  • Il n'est pas possible de récupérer uniquement les codes source

Place disque utilisée (2006-03-25):

  • mirrors/debian: ~8,6 Go (fixe, + ~9 Go pour les sources)
  • mirrors/debian-security: ~1,4 Go (grossit, + ~800 Mo pour les sources)
  • mirrors/backports.org: ~2,8 Go (grossit, + ~2Go pour les sources)

On peut utiliser directement le miroir en local: dans /etc/apt/sources.list:

deb file:///mnt/mirrors/debian sarge main

Partager le miroir

Une petite config Apache suffit:

Alias /mirrors /mnt/mirrors
<Directory "/mnt/mirrors">
  Options Indexes
  AllowOverride None
</Directory>

Au niveau client, le /etc/apt/sources.list ressemblera à:

deb http://192.168.1.63/mirrors/debian sarge main
deb http://192.168.1.63/mirrors/debian-security sarge/updates main
deb http://192.168.1.63/mirrors/backports.org sarge-backports main

Pour une installation Debian par le réseau, lorsque l'installateur vous demande le pays de votre miroir, choisissez le paramétrage manuel (tout en haut de la liste), puis:

  • Nom d'hôte: IP de votre machine
  • Répertoire: /mirrors/debian

Autres solutions à creuser

  • apt-move "can also build a partial or complete local mirror of a Debian binary distribution (including an ``installed-packages only mirror)."
  • debian-mirror est peut-être intéressant, mais pas de paquet Debian, bouh :p
  • Setting up a Debian archive mirror recommande d'utiliser anonftpsync. Même remarque :p Qui plus est, il faut sélectionner les architectures qu'on ne souhaite pas télécharger, à la place de ne sélectionner que les architectures dont on a besoin. C'est un script très court qui se base sur rsync, et ne peut pas créer de miroir partiel. debmirror semble plus simple.

Autres solutions non retenues

  • Il est possible d'utiliser un DVD d'installation, mais ce ne sera pas pratique:
    • il vous faudra changer régulièrement entre les deux CDs, voire entre plusieurs postes
    • vous n'aurez pas les mises à jour de sécurité (même si votre CD a été créé avec Jigdo)
  • Utiliser un apt-proxy sur votre ordinateur portable n'est pas une solution satisfaisante: il vous faudra le paramétrer pour éviter qu'il cherche des mises à jour lors d'un travail hors-ligne, et il vous manquera certainement des paquets.
  • debmirror + fichier de configuration (par opposition à ligne de commande): on a besoin d'au moins deux serveurs et donc deux configurations au minimum (stable, stable/security, éventuellement sarge-backports). C'est plus pratique en ligne de commande.
Outils personnels