Gérer un réseau sans internet

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. 8)