Sommaire :
I) Sur le serveur
1) Installation & configuration de APT-Mirror
2) Droit d’exécution
3) Récupération des fichiers
4) Si erreurs
5) Installation et configuration d’Apache2
6) Petits conseils
II) Sur le client
I) Sur le serveur
1) Installation & configuration de APT-Mirror
On commence par installer APT-Mirror :
aptitude install apt-mirror
Ensuite pour configurer APT-Mirror il faut éditer le fichier "mirror.list"
vim /etc/apt/mirror.list
On se retrouve avec le document suivant :
############# config ###################
set base_path /var/spool/apt-mirror
#
# if you change the base path you must create the directories below with write privlages
#
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
set defaultarch i386
set nthreads 100
set _tilde 0
#
############# end config ##############
deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
clean http://ftp.fr.debian.org/debian/
clean http://volatile.debian.org/debian-volatile
clean http://security.debian.org/
Quelques informations sont nécessaires :
La ligne ci-dessous, indique le chemin où sont stockés les fichiers :
set base_path /var/spool/apt-mirror
Les lignes ci-dessous, indiquent le nom des répertoires où sont répartit les différents fichiers :
set mirror_path $base_path/mirror
set skel_path $base_path/skel
set var_path $base_path/var
set cleanscript $var_path/clean.sh
La ligne ci-dessous, indiquent l’architecture des fichiers que nous voulons télécharger (si l’on commente on téléchargera toutes les architectures) :
set defaultarch i386
La ligne ci-dessous, indiquent le nombre de threads simultanés qui vont télécharger les données, (sorte de compte à rebours, 100... 99... 98...) :
set nthreads 100
La ligne ci-dessous, pas d’informations sur cette ligne à par quelle soit utile :
set _tilde 0
Les lignes suivantes sont les dépôts qui serviront de base pour télécharger les fichiers :
deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main
deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main
deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
clean http://ftp.fr.debian.org/debian/
clean http://volatile.debian.org/debian-volatile
clean http://security.debian.org/
Dans notre cas, j’ai laissé le dossier "/var/spool" par défaut, j’ai choisi les fichiers correspondant seulement au architecture "i386" avec un nthreads de "100".
2) Droit d’exécution
APT-Mirror utilise un script de nettoyage "clean.sh" il faut lui donner des droits d’exécution :
chmod +x /var/spool/apt-mirror/var/clean.sh
– Bien sur à vous d’adapter le chemin.
3) Récupération des fichiers
apt-mirror
– Après une ou plusieurs longue(s) journée(s) de téléchargement le téléchargement se finira.
4) Si erreur
Si vous rencontrez des erreurs à la fin du téléchargement comme par exemple :
closedir() attempted on invalid dirhandle DIR at /usr/bin/apt-mirror line 530.
Alors modifiez le fichier "/usr/bin/apt-mirror" :
vim /usr/bin/apt-mirror
– Dans le fichier de plusieurs pages qui s’affichera cherchez les lignes "sub process directory"
vous obtenez ceci :
sub process_directory {
my $dir = shift;
my $is_needed = 0;
return 1 if $skipclean{$dir};
opendir(DIR, $dir) or die "apt-mirror: can't opendir $dir: $!";
foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir(DIR)) {
my $item = $dir . "/". $_;
$is_needed |= process_directory($item) if -d $item && ! -l $item;
$is_needed |= process_file($item) if -f $item;
$is_needed |= process_symlink($item) if -l $item;
}
closedir DIR;
push @rm_dirs, $dir unless $is_needed;
return $is_needed;
}
Modifiez le par ceci :
sub process_directory {
my $dir = shift;
my $is_needed = 0;
return 1 if $skipclean{$dir};
opendir(my $dir_h, $dir) or die "apt-mirror: can't opendir $dir: $!";
foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir($dir_h)) {
# opendir(DIR, $dir) or die "apt-mirror: can't opendir $dir: $!";
# foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir(DIR)) {
my $item = $dir . "/". $_;
$is_needed |= process_directory($item) if -d $item && ! -l $item;
$is_needed |= process_file($item) if -f $item;
$is_needed |= process_symlink($item) if -l $item;
}
# closedir DIR;
closedir $dir_h;
push @rm_dirs, $dir unless $is_needed;
return $is_needed;
}
– remarquez que nous avons ajouté 3 lignes et commenté 3 autres lignes.
5) Installation et configuration d’Apache2
On commence par l’installation :
aptitude install apache2
Et nous n’avons plus qu’à créer des liens symboliques :
ln -s /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian /var/www/debian
ln -s /var/spool/apt-mirror/mirror/security.debian.org/ /var/www/debian-security
ln -s /var/spool/apt-mirror/mirror/volatile.debian.org/debian-volatile/ /var/www/debian-volatile
6) Petits conseils
– Une fois le téléchargement terminé, relancez le une deuxième fois.
– Une fois le téléchargement terminé, exécutez le script clean.sh.
II) Sur le client
Il faut maintenant ajouter notre serveur à la liste APT de notre machine cliente :
vim /etc/apt/sources.list
Ensuite on commente toutes les lignes et on ajoute les lignes suivantes :
deb http://10.1.1.100/debian-security/ lenny/updates main
deb-src http://10.1.1.100/debian-security/ lenny/updates main
deb http://10.1.1.100/debian/ lenny main
deb-src http://10.1.1.100/debian/ lenny main
deb http://10.1.1.100/debian-volatile/ lenny/volatile main
deb-src http://10.1.1.100/debian-volatile/ lenny/volatile main
Il nous reste plus qu’à faire une mise à jour de la base APT :
aptitude update