Miroir Debian
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 patch
- Télécharger les clefs GPG (cf. commentaires).
- Lancer la réplication:
#!/bin/sh # Download and update a Debian Etch mirror # Author: Sylvain Beucler <beuc@beuc.net> # You may need to import signing keys first: # gpg --keyring /etc/apt/trusted.gpg --export | gpg --import # # Or manually: # gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005 # gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006 # gpg --keyserver keyring.debian.org --recv 6070D3A1 # Etch auto # gpg --keyserver wwwkeys.eu.pgp.net --recv ADB11277 # Etch stable # http://ftp-master.debian.org/keys/archive-key-5.0.asc # gpg --keyserver wwwkeys.eu.pgp.net --recv F42584E6 # Lenny stable # gpg --keyserver wwwkeys.eu.pgp.net --recv BBE55AB3 # Etch volatile auto # http://volatile.debian.org/etch-volatile.asc # gpg --keyserver wwwkeys.eu.pgp.net --recv 55BE302B # Lenny auto # http://ftp-master.debian.org/keys/archive-key-5.0.asc # gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org # http://backports.org/debian/archive.key # gpg --keyserver keyring.debian.org --recv 1F41B907 # debian-multimedia verbose="0" verbose_opt="" if [ $verbose -eq 1 ]; then verbose_opt="--verbose" fi # Etch # Currently 2.6.18-4 packages are removed from the pool/, but not from # Packages, so we use --ignore-small-errors debmirror $verbose_opt --host=ftp.fr.debian.org --dist=etch --dist=stable \ --section=main,main/debian-installer --nosource --getcontents \ --ignore-small-errors \ /var/www/mirrors/debian # Etch security debmirror $verbose_opt --host=security.debian.org --dist=etch/updates \ --root=debian-security --section=main --nosource --method=http \ /var/www/mirrors/debian-security # Etch volatile debmirror $verbose_opt --host=volatile.debian.org --dist=etch/volatile \ --root=debian-volatile --section=main --nosource --getcontents \ --method=http /var/www/mirrors/debian-volatile # Etch backports debmirror $verbose_opt --host=www.backports.org --method=http \ --dist=etch-backports --section=main --nosource --getcontents \ /var/www/mirrors/backports.org # Debian multimedia # deb http://mirror.home-dn.net/debian-multimedia stable main debmirror $verbose_opt --host=www.debian-multimedia.org --method=http \ --dist=stable --root=/ --section=main --nosource --getcontents \ /var/www/mirrors/debian-multimedia
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
En local, on peut utiliser directement le miroir; dans /etc/apt/sources.list
:
deb file:///mnt/mirrors/debian sarge main
Place disque utilisée
- 2006-03-25 - release Sarge 6/2005:
- 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)
- 2007-04-23, paquets binaires uniquements, release Etch 4/2007:
$ du -sch backports.org/ debian/ debian-security/ 200M backports.org/ 13G debian/ 523M debian-security/ 14G total
- 2009-05, paquets binaires uniquements, release Lenny 2/2009:
1,2G debian-backports.org/ TODO
Partager le miroir
Une petite config Apache suffit:
#Alias /mirrors /var/www/mirrors <Directory "/var/www/mirrors"> Options Indexes AllowOverride None </Directory>
Au niveau client, le /etc/apt/sources.list
ressemblera à:
deb http://192.168.1.63/mirrors/debian etch main deb http://192.168.1.63/mirrors/debian-security etch/updates main deb http://192.168.1.63/mirrors/backports.org etch-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
- Idem pour apt-mirror
- 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.