Différences entre versions de « Miroir Debian »

De Cliss XXI
Sauter à la navigation Sauter à la recherche
imported>SylvainBeucler
m
imported>SylvainBeucler
m (→‎Tentons donc de créer un miroir : clef lenny volatile)
 
(45 versions intermédiaires par 3 utilisateurs 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:
 +
aptitude install debmirror patch
 +
 
 +
* Télécharger les clefs GPG (cf. commentaires).
  
* Télécharger la clef GPG:
 
gpg --keyserver keyring.debian.org --recv 4F368D5D
 
* Utiliser le /etc/debmirror.conf fourni:
 
cp /usr/share/doc/debmirror/debmirror.conf /etc
 
* Le configurer:
 
$host="ftp.fr.debian.org";
 
@dists="stable";
 
@sections="main,contrib";
 
$do_source=0;
 
 
* Lancer la réplication:
 
* Lancer la réplication:
  debmirror -v /mirror
+
<pre>
 +
#!/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
 +
</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.
 +
 +
Il est également possible d'utiliser plusieurs fois l'option <code>--dist</code>, par exemple <code>--dist=sarge --dist=etch</code>. 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 <code>pool/</code>.
 +
 +
<code>--getcontents</code> permet de récupérer le fichier <code>Content-i386.gz</code>, utilisé notamment par [http://packages.debian.org/stable/base/apt-file apt-file]. Il n'est pas fourni par security.debian.org pour le moment, et demander <code>--getcontents</code> 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 <code>/etc/apt/sources.list</code>:
 +
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 <code>/etc/apt/sources.list</code> 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: <code>/mirrors/debian</code>
  
 
== Autres solutions à creuser ==
 
== Autres solutions à creuser ==
Ligne 25 : Ligne 128 :
 
* Idem pour [http://apt-mirror.sourceforge.net/ apt-mirror]
 
* Idem pour [http://apt-mirror.sourceforge.net/ apt-mirror]
  
* [http://www.debian.org/mirror/ftpmirror Setting up a Debian archive mirror] recommande d'utiliser [http://www.debian.org/mirror/anonftpsync 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. apt-mirror semble plus simple.
+
* [http://www.debian.org/mirror/ftpmirror Setting up a Debian archive mirror] recommande d'utiliser [http://www.debian.org/mirror/anonftpsync 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 ==
 
== Autres solutions non retenues ==
Ligne 33 : Ligne 135 :
 
** il vous faudra changer régulièrement entre les deux CDs, voire entre plusieurs postes
 
** 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)
 
** 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 de nouvelles version pendant votre intervention, et il vous manquera certainement des paquets.
+
* 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.

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.