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

Avoir tous les packages de Debian à domicile, pour pouvoir installer votre serveur sans connexion internet. C’est possible ! apt-mirror est un outil permettant de créer facilement un miroir de dépôt de paquets deb. Cet article vous explique comment faire. Mais attention, le téléchargement des données soit 60-150Go demande une connexion internet qui soit importante.


Sommaire :

I) Sur le serveur
1) Installation & configuration de APT-Mirror
2) Droit d’exécution
3) Récupération des fichiers
4) Installation et configuration d’Apache2
5) Petits conseils :
II) Sur le client
III) Automatisation des mises à jour
IV) Message d’erreur


I) Sur le serveur

Haut de page

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/miroir

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 postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set nthreads     20
set _tilde 0
#

############# end config ##############

deb http://ftp.fr.debian.org/debian/ squeeze main
deb-src http://ftp.fr.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ squeeze-updates main
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main


clean http://ftp.fr.debian.org/debian/

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/ squeeze main
deb-src http://ftp.fr.debian.org/debian/ squeeze main

deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ squeeze-updates main
deb-src http://ftp.fr.debian.org/debian/ squeeze-updates main

clean http://ftp.fr.debian.org/debian/

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) Installation et configuration d’Apache2

On commence par l’installation :

aptitude install apache2

On édite ensuite le fichier "/etc/apache2/sites-available/default" qui correspond au fichier de configuration du site par défaut indiquant entre autre le chemin des fichiers du site.

vim /etc/apache2/sites-available/default

Et nous ajoutons les deux blocs suivants en bas de la page après la ligne "VirtualHost"

Alias /debian /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/
<Directory /var/spool/apt-mirror/mirror/ftp.fr.debian.org/debian/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>

Alias / /var/spool/apt-mirror/mirror/security.debian.org/
<Directory /var/miroir/mirror/security.debian.org/>
Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription
</Directory>

5) 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

Haut de page

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://@IP_de_votre_serveur/debian/ squeeze main
deb-src http://@IP_de_votre_serveur/debian/ squeeze main

deb http://@IP_de_votre_serveur/ squeeze/updates main
deb-src http://@IP_de_votre_serveur/ squeeze/updates main

# squeeze-updates, previously known as 'volatile'
deb http://@IP_de_votre_serveur/debian/ squeeze-updates main
deb-src http://@IP_de_votre_serveur/debian/ squeeze-updates main

Il nous reste plus qu’à faire une mise à jour de la base APT :

aptitude update

III) Automatisation des mises à jour

Haut de page

Pour automatiser la mise à jour de l’Apt-mirror la solution consiste à utiliser une tâche cron. Si nous regardons dans le répertoire /etc/cron.d/ un fichier apt-mirror existe déjà.

Tapez :

vim /etc/cron.d/apt-mirror

Ensuite une ligne de tache cron se présente comme ceci :

Minute Heure Numéro_du_jour_dans_le_mois Numéro_du_mois Numéro_du_jour_dans_la_semaine commande_à_automatiser

nous allons donc ajouter la ligne suivante :

0 0   * * 1  apt-mirror      /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log

Cette ligne exécutera apt-mirror tous les lundis de chaque mois à 00h00.

Si vous voulez vérifier le fonctionnement affiché le fichier cron.log

#tail -f /var/spool/apt-mirror/var/cron.log

IV) Message d’erreur

Haut de page

Si vous le message d’erreur suivant s’affiche :

apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187.

Vous devez supprimer le fichier apt-mirror.lock, le fichier en question se trouve dans le dossier/var/spool/apt-mirror/var/apt-mirror.lock avec la commande suivante :

rm /var/spool/apt-mirror/var/apt-mirror.lock

Si vous voulez connaitre l’emplacement de votre fichier vous pouvez toujours utiliser la commande de recherche find :

find / -name apt-mirror.lock
 
 
 
 
 
Commentaires :

  •  Serveur APT-mirror Squeeze    > 18 novembre 2011 17:49

    Bonjour et merci pour le tuto

    J’avais des erreurs lors des apt-get update au niveau des clients et je n’ai plus d’erreurs après avoir rajouter dans le fichier default d’apache un / à la fin des 2 lignes :

    Alias / /var/spool/apt-mirror/mirror/security.debian.org/
    var/miroir/mirror/security.debian.org/>


    •  Serveur APT-mirror Squeeze    > 19 novembre 2011 13:47, par N.Salmon

      Merci, je corrige.


  •  Serveur APT-mirror Squeeze    > 9 septembre 2011 23:06, par N.Salmon

    Bonjour,

    Pouvez me dire quelle connexion internet vous avez ?

    Ensuite pouvez vous m’envoyer (par mail) votre fichier de configuration de apt-mirror ?

    Avez vous assez d’espace disque dur ?

    Utilisez vous un serveur virtuel ou un serveur physique ?

    Lorsque vous avez eu le message : "apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187."

    avez vous supprimé le fichier "apt-mirror.lock" avec la commande :

    rm /var/spool/apt-mirror/var/apt-mirror.lock

     ???

    Cordialement


  •  Serveur APT-mirror Squeeze    > 9 septembre 2011 13:41, par Oumarou

    Bonjour j’ai commencé l’installation du miroir mais après trois jours de téléchargement, la machine se plante lorsque je reprend l’installation je reçois le massage suivant : "apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187."
    J’ai repris à deux reprises l’installation mais toujours le même message. (Apres un "aptitude purge apt-mirror")

    Que faire ?

    Merci.