Créer un miroir Gnu/Linux Debian Wheezy avec debmirror

Pour réaliser un miroir de la distribution Gnu/Linux Debian (Le dépôt de base, les backports et le security) avec debmirror, vous devez récupérer la dernière version de debmirror qui est disponible ici. Nous avons téléchargé la version debmirror_2.14_all.deb. Cette version est différente de celle qui est fournie dans la version stable Squeeze (disponible dans la Wheezy), mais elle est nécessaire car elle permet de récupérer les traductions (translation) avec l’option –i18n, cette option est boguée dans les versions inférieures à la 2.14:

$ su -
# apt-get install debmirror gnupg debian-archive-keyring
# wget http://ftp.fr.debian.org/debian/pool/main/d/debmirror/debmirror_2.14_all.deb
# dpkg -i debmirror_2.14_all.deb

si vous rencontrez des problèmes avec dépendances du paquets, vous pouvez le corriger de la manière suivante:

# apt-get -f install

Il est nécessaire de créer un utilisateur (cet utilisateur aura pour groupe le groupe d’Apache) pour le chargement du miroir avec lequel vous pourrez garder les clés des dépôts Gnu/Linux Debian qui permettront de garantir la sécurité et l’authenticité des paquets récupérés :

# adduser --system --home /srv/mirror --gid www-data --no-create-home umirror
# mkdir /srv/mirror
# chown umirror:www-data /srv/mirror
# chmod u+rwx,g+rxs-w,o-rwx /srv/mirror
# su - umirror
$ gpg --no-default-keyring --keyring trustedkeys.gpg --import /usr/share/keyrings/debian-archive-keyring.gpg
$ gpg --no-default-keyring --keyring trustedkeys.gpg --import /usr/share/keyrings/debian-role-keys.gpg
$ mkdir /srv/mirror/debian
$ mkdir /srv/mirror/debian-security
$ mkdir /srv/mirror/debian-backports

Pour créer le miroir du dépôt principal de Gnu/Linux Debian, vous pouvez installer ce script (xx_m_debian) dans le répertoire /etc/cron.daily, sans oublier de le rendre exécutable :

#!/bin/bash

## Paramêtrage et explications du fichier xx_m_debian.

#
# Utilisez les clés de l'utilisateur qui crée le miroir dans son home
#
export GNUPGHOME=/srv/mirror/.gnupg

# les logs du miroir
logfile=/var/log/apache2/debian-mirror.log
# le mail qui recevra la notification de fin de script
adminmail=VOTREADRESSE
# Mettre à 1/0 si vous voulez ou non recevoir la notification
sendemail=0

# Sujet du mail
subject="Synchronisation du miroir Debian terminée"

## Initialiasation de quelques variables supplémentaires
status=1
pid=$$

# Arch=         -a     -- Liste des Architecture à synchroniser (ici toutes au 1/8/2012)
arch=amd64,i386,kfreebsd-amd64,kfreebsd-i386,powerpc,armel,ia64,mipsel,mips,s390,sparc

# Un système Gnu/Linux Debian nécessite au minimum la section main
# Elle y sont toutes dans notre exemple
section=main,contrib,non-free,main/debian-installer

# Release=      -d      -- Les des versions de Debian.
# stable= squeeze, testing=wheezy, unstable=sid... au 1/8/2012
release=stable,testing,unstable,experimental

# Server=       -h      # Nom du serveur utiliser pour le miroir
#
server=ftp.us.debian.org

# Dir=          -r      # le répertoire où se trouve les fichiers
#
inPath=/debian

# Proto=        -e      # Protocole utiliser pour le transfert (http, ftp, hftp, rsync)
# En choisr un: http is plus utilisé, mais rsync est le protocole conseillé si le serveur que vous utilisez pour le miroir le permet.
#
proto=rsync

# Outpath=              # Le répertoire cible pour votre mirroir.
# le chemin doit être entier et non relatif.
outPath=/srv/mirror/debian

# l'option --progress précisera dans les logs les fichiers téléchargés
# --source \ ou  --no-source \ si vous voulez ou non les sources.
# --nocleanup  ne supprimera pas les anciens fichiers, cela vous permet d'avoir un historique des paquets pour un éventuel downgrade
# mais cela consomme énormément de place disque : http://www.debian.org/mirror/size.fr.html
# Démarrage du mirroring:
#
/sur/bin/debmirror       -a $arch \
                --source \
                -s $section \
		--i18n \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
		--getcontents \
		--diff=use \
		--ignore-small-errors \
                -e $proto \
                $outPath >>$logfile
status=$?

#### Fin du script ####

La même chose, mais pour le miroir du dépôt Security de Gnu/Linux Debian, vous pouvez installer ce script (yy_m_debian-security) dans le répertoire /etc/cron.daily, sans oublier de le rendre exécutable :

#!/bin/bash

## Paramêtrage et explications du fichier yy_m_debian-security.

#
# Utilisez les clés de l'utilisateur qui crée le miroir dans son home
#
export GNUPGHOME=/srv/mirror/.gnupg

# les logs du miroir
logfile=/var/log/apache2/debian-security-mirror.log
# le mail qui recevra la notification de fin de script
adminmail=VOTREADRESSE
# Mettre à 1/0 si vous voulez ou non recevoir la notification
sendemail=0

# Sujet du mail
subject="Synchronisation du miroir Debian terminée"

## Initialiasation de quelques variables supplémentaires
status=1
pid=$$

# Arch=         -a     -- Liste des Architecture à synchroniser (ici toutes au 1/8/2012)
arch=amd64,i386,kfreebsd-amd64,kfreebsd-i386,powerpc,armel,ia64,mipsel,mips,s390,sparc

# Un système Gnu/Linux Debian nécessite au minimum la section main
# Elle y sont toutes dans notre exemple
section=main,contrib,non-free

# Release=      -d      -- Les des versions de Debian.
# stable= squeeze... au 1/8/2012
release=stable/updates,testing/updates

# Server=       -h      # Nom du serveur utiliser pour le miroir
#
server=ftp.de.debian.org

# Dir=          -r      # le répertoire où se trouve les fichiers
#
inPath=/debian-security

# Proto=        -e      # Protocole utiliser pour le transfert (http, ftp, hftp, rsync)
# En choisr un: http is plus utilisé, mais rsync est le protocole conseillé si le serveur que vous utilisez pour le miroir le permet.
#
proto=rsync

# Outpath=              # Le répertoire cible pour votre mirroir.
# le chemin doit être entier et non relatif.
outPath=/srv/mirror/debian-security

# l'option --progress précisera dans les logs les fichiers téléchargés
# --source \ ou  --no-source \ si vous voulez ou non les sources.
# --nocleanup  ne supprimera pas les anciens fichiers, cela vous permet d'avoir un historique des paquets pour un éventuel downgrade
# mais cela consomme énormément de place disque : http://www.debian.org/mirror/size.fr.html
# Démarrage du mirroring:
#
/sur/bin/debmirror       -a $arch \
                --source \
                -s $section \
		--i18n \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
		--getcontents \
		--diff=use \
		--ignore-small-errors \
                -e $proto \
                $outPath >>$logfile
status=$?

#### Fin du script ####

Et pour terminer, la même chose, mais cette fois-ci pour le miroir du dépôt Backports de Gnu/Linux Debian, vous pouvez installer ce script (zz_m_debian-backports) dans le répertoire /etc/cron.daily, sans oublier de le rendre exécutable :

#!/bin/bash

## Paramêtrage et explications du fichier zz_m_debian-backports.

#
# Utilisez les clés de l'utilisateur qui crée le miroir dans son home
#
export GNUPGHOME=/srv/mirror/.gnupg

# les logs du miroir
logfile=/var/log/apache2/debian-backports-mirror.log
# le mail qui recevra la notification de fin de script
adminmail=VOTREADRESSE
# Mettre à 1/0 si vous voulez ou non recevoir la notification
sendemail=0

# Sujet du mail
subject="Synchronisation du miroir Debian terminée"

## Initialiasation de quelques variables supplémentaires
status=1
pid=$$

# Arch=         -a     -- Liste des Architecture à synchroniser (ici toutes au 1/8/2012)
arch=amd64,i386,kfreebsd-amd64,kfreebsd-i386,powerpc,armel,ia64,mipsel,mips,s390,sparc

# Un système Gnu/Linux Debian nécessite au minimum la section main
# Elle y sont toutes dans notre exemple
section=main,contrib,non-free

# Release=      -d      -- Les des versions de Debian.
# stable= squeeze... au 1/8/2012
release=squeeze-backports

# Server=       -h      # Nom du serveur utiliser pour le miroir
#
server=ftp.de.debian.org

# Dir=          -r      # le répertoire où se trouve les fichiers
#
inPath=/debian-backports

# Proto=        -e      # Protocole utiliser pour le transfert (http, ftp, hftp, rsync)
# En choisr un: http is plus utilisé, mais rsync est le protocole conseillé si le serveur que vous utilisez pour le miroir le permet.
#
proto=rsync

# Outpath=              # Le répertoire cible pour votre mirroir.
# le chemin doit être entier et non relatif.
outPath=/srv/mirror/debian-backports

# l'option --progress précisera dans les logs les fichiers téléchargés
# --source \ ou  --no-source \ si vous voulez ou non les sources.
# --nocleanup  ne supprimera pas les anciens fichiers, cela vous permet d'avoir un historique des paquets pour un éventuel downgrade
# mais cela consomme énormément de place disque : http://www.debian.org/mirror/size.fr.html
# Démarrage du mirroring:
#
/sur/bin/debmirror       -a $arch \
                --source \
                -s $section \
		--i18n \
                -h $server \
                -d $release \
                -r $inPath \
                --progress \
		--getcontents \
		--diff=use \
		--ignore-small-errors \
                -e $proto \
                $outPath >>$logfile
status=$?

#### Fin du script ####

Ces scripts sont opérationnels et actuellement utilisés pour réaliser un miroir complet (Toutes les architectures officielles et les dépôts SECURITY et BACKPORT) de la distribution Gnu/Linux Debian (Stable, Testing, Unstable et Experimental), utilisable en HTTPS.

Dans un prochain article, nous étudierons la commande « apt-mirror » pour aussi réaliser un miroir des dépôts des paquets Gnu/Linux Debian.

Références :
Gnu/Linux Debian 7.0 Wheezy
Debmirror >=2.14

Ce contenu a été publié dans Libre, Techno, Tutoriel, avec comme mot(s)-clé(s) , , , , . Vous pouvez le mettre en favoris avec ce permalien.