Différences entre versions de « Miroir Debian »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
imported>SylvainBeucler
m (mise à jour du codfe)
Ligne 4 : Ligne 4 :
  
 
* Utilisation de debmirror:
 
* Utilisation de debmirror:
  aptitude install debmirror
+
  aptitude install debmirror patch
  
* Télécharger les clefs GPG:
+
* Télécharger les clefs GPG (cf. commentaires).
 
  gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005
 
  gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005
 
  gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
 
  gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
Ligne 13 : Ligne 13 :
  
 
* Lancer la réplication:
 
* Lancer la réplication:
  rm /etc/debmirror.conf # it would conflict with our settings
+
  #!/bin/sh
 +
# Download and update a Debian Etch mirror
 +
  # Author: Sylvain Beucler <beuc@beuc.net>
 
   
 
   
  # Sarge
+
  # You may need to import signing keys first:
  debmirror --verbose --host=ftp2.fr.debian.org --dist=sarge --dist=stable \
+
  # gpg --keyring /etc/apt/trusted.gpg --export | gpg --import
    --section=main,main/debian-installer --nosource --getcontents \
+
#
    /mnt/mirrors/debian
+
# 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
 +
#  http://ftp-master.debian.org/archive-key-4.0.asc
 +
# gpg --keyserver wwwkeys.eu.pgp.net --recv ADB11277 # Etch stable
 +
# gpg --keyserver wwwkeys.eu.pgp.net --recv BBE55AB3 # Etch volatile auto
 +
#  http://volatile.debian.org/etch-volatile.asc
 +
# gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
 +
#  http://backports.org/debian/archive.key
 
   
 
   
  # Sarge security
+
verbose="0"
  debmirror --verbose --host=security.debian.org --dist=sarge/updates \
+
verbose_opt=""
    --root=debian-security  --section=main --nosource \
+
if [ $verbose -eq 1 ]; then
    /mnt/mirrors/debian-security
+
    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
 
   
 
   
  # Sarge backports
+
  # Etch security
  debmirror --verbose --host=www.backports.org --method=http \
+
debmirror $verbose_opt --host=security.debian.org --dist=etch/updates \
    --dist=sarge-backports --section=main --nosource --getcontents \
+
    --root=debian-security --section=main --nosource --method=http \
    /mnt/mirrors/backports.org
+
    /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
  
 
Il est possible d'interrompre la réplication et de la reprendre plus tard.
 
Il est possible d'interrompre la réplication et de la reprendre plus tard.

Version du 4 septembre 2007 à 19:23

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).
gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005
gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
gpg --keyserver keyring.debian.org --recv 6070D3A1 # 2006/etch
gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
  • 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
#   http://ftp-master.debian.org/archive-key-4.0.asc
# gpg --keyserver wwwkeys.eu.pgp.net --recv ADB11277 # Etch stable
# gpg --keyserver wwwkeys.eu.pgp.net --recv BBE55AB3 # Etch volatile auto
#   http://volatile.debian.org/etch-volatile.asc
# gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
#   http://backports.org/debian/archive.key

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

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

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.