Serveur APT-mirror Lenny
>>> Création d’un miroir APT sous Debian Lenny
Version PDF

Avoir tous les packages de Debian ou Ubuntu à domicile, pour pouvoir installer votre serveur sans connexion internet. C’est possible !
Ce cours va vous apprendre comment faire.


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 :

set base_path    /var/spool/apt-mirror

- Indique le chemin où sont stockés les fichiers.

Les lignes :

set mirror_path  $base_path/mirror

set skel_path    $base_path/skel

set var_path     $base_path/var

set cleanscript $var_path/clean.sh

- Indiquent le nom des répertoires où sont répartit les différents fichiers.

La ligne :

set defaultarch  i386

- Indiquent l’architecture des fichiers que nous voulons télécharger (si l’on commente on téléchargera toutes les architectures).

La ligne :

set nthreads     100

- Indiquent le nombre de threads simultanés qui vont télécharger les données, (sorte de compte à rebours, 100... 99... 98...).

La ligne :

set _tilde 0

- Pas d’informations sur cette ligne à par quelle soit utile.

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
 
 
23 décembre 2009  --  N.Salmon
 
 
 
 
Commentaires :
Répondre à cet article
 
 
Se connecter | Copyright © 2016 Idum