Mettre en place un miroir en local pour debian

Mettre en place un dépôt debian local

Quand on commence à avoir un nombre important de machine dans son réseau , ou du fait de notre débit datant de la préhistoire ou tout simplement plaisir de geek .

Au lieu que toutes les machines récupèrent les mises à jour ou autres paquets depuis les dépots debian. Pourquoi ne pas mettre en place ce dépôts(mirror) tout simplement dans notre LAN. Nous économisons notre BP et gagnons en rapidité d’installation de nos paquets eh wii nous sommes maintenant en local 🙂

Compter environ 45G pour les dépôts debian lenny main contrib non-free et security . Donc avant de continuer veiller à avoir au moins 50G tout de même sur une partition.

De mon coté j’utilise LVM . Donc on commence par créer un LV et le formater en ext3

  1. /*
  2. lvcreate -L+50G -n lv_mirroir DATA # DATA correspond au nom de votre volume group
  3. mkfs.ext3 /dev/mapper/DATA-lv_mirroir
  4. */

On crée un répertoire pour accueillir notre dépôt

  1. /*
  2. mkdir /mnt/mirroir/
  3. */

On installe les paquets nécessaires

  1. /*
  2. apt-get install apache2 apt-mirror
  3. */

Configurons un peu tout ça

  1. /*
  2. vim /etc/apt/mirror.list
  3. ############# config ##################
  4. #
  5. set base_path /mnt/mirroir/
  6. #
  7. # if you change the base path you must create the directories below with write privlages
  8. # ++Si vous modifier le repertoire par defaut qui est dans la variable « set base_path ». Il faut decommenter les lignes suivantes et creer les repertoires++ .
  9. #
  10. set mirror_path $base_path/mirror
  11. set skel_path $base_path/skel
  12. set var_path $base_path/var
  13. # set cleanscript $var_path/clean.sh
  14. set defaultarch i386
  15. set nthreads 20
  16. set _tilde 0
  17. #
  18. ############# end config ##############
  19. deb http://ftp.fr.debian.org/debian lenny main contrib non-free
  20. deb-src http://ftp.fr.debian.org/debian lenny main contrib non-free
  21. deb http://ftp.fr.debian.org/debian lenny main/debian-installer
  22. deb http://security.debian.org/debian-security lenny/updates main contrib non-free
  23. deb-src http://security.debian.org/debian-security lenny/updates main contrib non-free
  24. clean http://ftp.fr.debian.org/debian
  25. */

Il vous faudra créer les répertoires mirror,skel,var » dans /mnt/mirroir/ . Le propriétaire et le groupe doivent être « apt-mirror » .

defaultarch : Type d’architecture à récupéré dans notre cas i386.

nthreads : Nombre de téléchargement simultanés

On peut maintenant lancer la récupération des paquets

  1. /*
  2. apt-mirror /etc/apt/mirror.list
  3. */

On automatise la récupération des paquets

  1. /*
  2. 0 1 * * * apt-mirror apt-mirror > /mnt/mirroir/var/cron.log
  3. */

Pour que notre dépôt soit accessible par les machines clientes il faut créer un lien symbolique.

  1. /*
  2. ln -s /mnt/mirroir/mirror/ftp.fr.debian.org/debian /var/www/debian
  3. */

Après avoir lancé un apt-mirror il est possible d’avoir ce type d’erreur .

  1. /*
  2. closedir() attempted on invalid dirhandle DIR at /usr/bin/apt-mirror line 528.
  3. */

Ceci est un bug connu ici . En gros il faut supprimer les lignes avec les « – » et ajouter les lignes avec des « + » au final on obtient :

  1. /*
  2. sub process_directory {
  3. my $dir = shift;
  4. my $is_needed = 0;
  5. return 1 if $skipclean{$dir};
  6. # opendir(DIR, $dir) or die « apt-mirror: can’t opendir $dir: $! »;
  7. # foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir(DIR)) {
  8. opendir(my $dir_h, $dir) or die « apt-mirror: can’t opendir $dir: $! »;
  9. foreach (grep { !/^\.$/ && !/^\.\.$/ } readdir($dir_h)) {
  10. my $item = $dir . « / ». $_;
  11. $is_needed |= process_directory($item) if -d $item && ! -l $item;
  12. $is_needed |= process_file($item) if -f $item;
  13. $is_needed |= process_symlink($item) if -l $item;
  14. }
  15. # closedir DIR;
  16. closedir $dir_h;
  17. */

Configurer vos postes afin de ne plus récupérer vos paquets sur le web mais bien sur votre réseau local

  1. /*
  2. vim /etc/apt/source.list
  3. deb http://votre_miroir_en_local/debian/ squeeze main non-free
  4. deb-src http://votre_miroir_en_local/debian/ squeeze main non-free
  5. deb http://votre_miroir_en_local squeeze/updates main
  6. */

Related posts

Leave a Comment