Différences entre versions de « Miroir Debian »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (→‎Partager le miroir : sarge->etch)
imported>SylvainBeucler
m (→‎Tentons donc de créer un miroir : clef lenny volatile)
 
(4 versions intermédiaires par le même utilisateur non affichées)
Ligne 9 : Ligne 9 :
  
 
* Lancer la réplication:
 
* Lancer la réplication:
#!/bin/sh
+
<pre>
# Download and update a Debian Etch mirror
+
#!/bin/sh
# Author: Sylvain Beucler <beuc@beuc.net>
+
# 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
+
# 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
+
# Or manually:
# gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
+
# gpg --keyserver keyring.debian.org --recv 4F368D5D # 2005
# gpg --keyserver keyring.debian.org --recv 6070D3A1 # Etch auto
+
# gpg --keyserver keyring.debian.org --recv 2D230C5F # 2006
#  http://ftp-master.debian.org/archive-key-4.0.asc
+
# gpg --keyserver keyring.debian.org --recv 6070D3A1 # Etch auto
# gpg --keyserver wwwkeys.eu.pgp.net --recv ADB11277 # Etch stable
+
# gpg --keyserver wwwkeys.eu.pgp.net --recv ADB11277 # Etch stable
# gpg --keyserver wwwkeys.eu.pgp.net --recv BBE55AB3 # Etch volatile auto
+
#  http://ftp-master.debian.org/keys/archive-key-5.0.asc
#  http://volatile.debian.org/etch-volatile.asc
+
# gpg --keyserver wwwkeys.eu.pgp.net --recv F42584E6 # Lenny stable
  # gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
+
# gpg --keyserver wwwkeys.eu.pgp.net --recv BBE55AB3 # Etch volatile auto
#  http://backports.org/debian/archive.key
+
#  http://volatile.debian.org/etch-volatile.asc
+
# gpg --keyserver wwwkeys.eu.pgp.net --recv 6D849617 # Lenny volatile auto
verbose="0"
+
#  http://www.debian.org/volatile/lenny-volatile.asc
verbose_opt=""
+
# gpg --keyserver wwwkeys.eu.pgp.net --recv 55BE302B # Lenny auto
if [ $verbose -eq 1 ]; then
+
#  http://ftp-master.debian.org/keys/archive-key-5.0.asc
    verbose_opt="--verbose"
+
# gpg --keyserver pgpkeys.pca.dfn.de --recv 16BA136C # backports.org
fi
+
#  http://backports.org/debian/archive.key
# Etch
+
# gpg --keyserver keyring.debian.org --recv 1F41B907 # debian-multimedia
# Currently 2.6.18-4 packages are removed from the pool/, but not from
+
 
# Packages, so we use --ignore-small-errors
+
verbose="0"
debmirror $verbose_opt --host=ftp.fr.debian.org --dist=etch --dist=stable \
+
verbose_opt=""
    --section=main,main/debian-installer --nosource --getcontents \
+
if [ $verbose -eq 1 ]; then
    --ignore-small-errors \
+
    verbose_opt="--verbose"
    /var/www/mirrors/debian
+
fi
+
# Etch
# Etch security
+
# Currently 2.6.18-4 packages are removed from the pool/, but not from
debmirror $verbose_opt --host=security.debian.org --dist=etch/updates \
+
# Packages, so we use --ignore-small-errors
    --root=debian-security --section=main --nosource --method=http \
+
debmirror $verbose_opt --host=ftp.fr.debian.org --dist=etch --dist=stable \
    /var/www/mirrors/debian-security
+
    --section=main,main/debian-installer --nosource --getcontents \
+
    --ignore-small-errors \
# Etch volatile
+
    /var/www/mirrors/debian
debmirror $verbose_opt --host=volatile.debian.org --dist=etch/volatile \
+
 
    --root=debian-volatile --section=main --nosource --getcontents \
+
# Etch security
      --method=http /var/www/mirrors/debian-volatile
+
debmirror $verbose_opt --host=security.debian.org --dist=etch/updates \
+
    --root=debian-security --section=main --nosource --method=http \
# Etch backports
+
    /var/www/mirrors/debian-security
debmirror $verbose_opt --host=www.backports.org --method=http \
+
 
    --dist=etch-backports --section=main --nosource --getcontents \
+
# Etch volatile
    /var/www/mirrors/backports.org
+
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
 +
</pre>
  
 
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.
Ligne 71 : Ligne 85 :
 
== Place disque utilisée ==  
 
== Place disque utilisée ==  
  
*2006-03-25 - release Sarge 6/2005:
+
* 2006-03-25 - release Sarge 6/2005:
 
** mirrors/debian: ~8,6 Go (fixe, + ~9 Go pour les sources)
 
** mirrors/debian: ~8,6 Go (fixe, + ~9 Go pour les sources)
 
** mirrors/debian-security: ~1,4 Go (grossit, + ~800 Mo pour les sources)
 
** mirrors/debian-security: ~1,4 Go (grossit, + ~800 Mo pour les sources)
Ligne 82 : Ligne 96 :
 
  523M    debian-security/
 
  523M    debian-security/
 
  14G    total
 
  14G    total
 +
 +
* 2009-05, paquets binaires uniquements, release Lenny 2/2009:
 +
1,2G    debian-backports.org/
 +
TODO
  
 
== Partager le miroir ==
 
== Partager le miroir ==
Ligne 94 : Ligne 112 :
  
 
Au niveau client, le <code>/etc/apt/sources.list</code> ressemblera à:
 
Au niveau client, le <code>/etc/apt/sources.list</code> ressemblera à:
  deb http://192.168.1.63/mirrors/debian etc main
+
  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/debian-security etch/updates main
 
  deb http://192.168.1.63/mirrors/backports.org etch-backports main
 
  deb http://192.168.1.63/mirrors/backports.org etch-backports main

Version actuelle datée du 18 janvier 2010 à 11:49

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  6D849617 # Lenny volatile auto
#   http://www.debian.org/volatile/lenny-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
  • 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.