Différences entre versions de « Miroir Debian »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m (mise à jour du codfe)
imported>SylvainBeucler
m (→‎Tentons donc de créer un miroir : clef lenny volatile)
 
(7 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
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.
 
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:
+
== Tentons donc de créer un miroir ==
  
 
* Utilisation de debmirror:
 
* Utilisation de debmirror:
Ligne 7 : Ligne 7 :
  
 
* Télécharger les clefs GPG (cf. commentaires).
 
* 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:
 
* 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 75 : 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 86 : 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 91 : Ligne 105 :
 
Une petite config Apache suffit:
 
Une petite config Apache suffit:
  
  Alias /mirrors /mnt/mirrors
+
  #Alias /mirrors /var/www/mirrors
  <Directory "/mnt/mirrors">
+
  <Directory "/var/www/mirrors">
 
   Options Indexes
 
   Options Indexes
 
   AllowOverride None
 
   AllowOverride None
Ligne 98 : 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 sarge main
+
  deb http://192.168.1.63/mirrors/debian etch main
  deb http://192.168.1.63/mirrors/debian-security sarge/updates main
+
  deb http://192.168.1.63/mirrors/debian-security etch/updates main
  deb http://192.168.1.63/mirrors/backports.org sarge-backports 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:
 
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:

Version actuelle datée du 18 janvier 2010 à 12: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.