Disposant d’un switch et de plusieurs PC sans lecteur DVD (avec lecteur CD), je souhaitais installer debian sur ces derniers sans utiliser internet ( forum.debian-fr.org/viewtopic.php?f=3&t=23500 ). J’ai trouvé une solution en créant un dépôt local sur un PC avec apt-mirror.
d’après le tuto très bien détaillé " doc.ubuntu-fr.org/tutoriel/creer … epot_local "
SUR LE PC SERVEUR
- installation de debian en se connectant à internet
- installation de apt-mirror
aptitude install apt-mirror
- création d’un dossier miroir (/home/utilisateur1/miroir) dans lequel on crée trois sous dossiers (mirror, skel, val)
- création du fichier de configuration de apt-mirror (/home/utilisateur1/miroir/apt-mirror-configuration)
[code]############# config ##################
dossier du futur dépôt
set base_path /home/utilisateur1/miroir
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
arcitecture i386
set defaultarch i386
set nthreads 20
set _tilde 0
############# end config ##############
dépôt source
deb http://ftp.fr.debian.org/debian lenny main contrib non-free
clean http://ftp.fr.debian.org/debian[/code]
- récupération des paquets sur le PC:
apt-mirror /home/utilisateur1/miroir/apt-mirror-configuration
- Si ce message d’erreur closedir() attempted on invalid dirhandle DIR at /usr/bin/apt-mirror line 528 apparaît en fin de traitement, il faut modifier la fonction process_directory() dans le fichier /usr/bin/apt-mirror (bugs.debian.org/cgi-bin/bugreport.cgi?bug=484876)
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)) {
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_h;
push @rm_dirs, $dir unless $is_needed;
return $is_needed;
}
- Modification du /etc/apt/sources.list pour pouvoir utiliser le dépôt local sur le PC.
deb file:/home/utilisateur1/miroir/mirror/ftp.fr.debian.org/debian/ lenny main contrib non-free
- On met à jour la liste des dépôts
aptitude update
On peut maintenant installer des programmes sur ce PC sans internet
- Pour pouvoir utiliser ce dépôt local sur les PC clients, il faut installer un serveur http:
aptitude install apache2
(se rendre sur localhost/ pour vérifier le bon fonctionnement).
- Par défaut la base où se situent les documents pour apache est « /var/www » or le miroir est ici : « /home/utilisateur1/miroir/ftp.fr.debian.org/debian ». On crée donc un lien symbolique afin qu’Apache puisse nous servir nos paquets :
ln -s /home/utilisateur1/miroir/mirror/ftp.fr.debian.org/debian /var/www/
- se rendre sur localhost/debian/ pour vérifier le bon fonctionnement. On doit y voir des dossiers (avec lynx par exemple en ligne de commande:
lynx http://localhost/debian/
ou avec epiphany:
epiphany http://localhost/debian/
SUR LES PC CLIENTS
- installer debian (système de base) sur les clients avec un CD netinstall en ignorant l’utilisation d’un miroir.
- modifier le /etc/apt/sources.list des clients (192.168.1.1: IP local du PC serveur)
deb http://192.168.1.1/debian/ lenny main contrib non-free
- un petit
aptitude update
et cela roule.