Créer un dépôt Debian local sans liaison Internet

Date: 15/01/2012 | Catégories: Open-source,Planet-libre,Systeme | Tags: ,,,,,,

Vous êtes sur un réseau sans accès Internet et vous devez installer et maintenir plusieurs machines Debian ?

Ce scénario s'étant présenté à moi, j'ai décidé d'installer sur ce réseau isolé  un dépôt Debian local que j'ai construit à partir des 8 DVD d'installation de la version 6.0.3 de Debian Squeeze.  Nous allons donc dans ce billet voir la marche à suivre, étape par étape.

Construction du dépôt local

Pour effectuer cette action, il faut:

  • les DVD d'installation de la Debian 6.0.x ou toutes les images ISO des DVD d'installation de Debian 6.0.x (à télécharger ici)
  • une machine sous Debian qui hébergera le dépôt local (donc avec un minimum de 50 Go de disque disponible)
  • du temps...

On commence par faire une installation standard de Debian 6.

On créé ensuite un répertoire qui contiendra le dépôt local (/data/debian dans mon exemple qui est en fait un point de montage sur un deuxième disque dur):

Si vous avez les DVD...

On copie les fichiers .deb des DVD dans ce répertoire en utilisant insérant le DVD dans le lecteur puis en saisissant la commande suivante (action à répéter pour les 8 DVD):

Si vous avez les images ISO...

Si comme moi vous avez copié les images ISO des DVD sur un NAS (monté dans le répertoire /mnt/nas/iso/debian) alors vous pouvez utiliser cette commande en lieu et place de la précédante:

A la fin de ces opérations, le répertoire /data/debian devrait contenir l'ensemble des paquets .deb constituant la distribution stable de Debian Squeeze (pour une taille d'environ 35 Go).

On passe ensuite à la création des deux fichiers qui vont permettre de transformer ce répertoire en un dépôt Debian: les fichiers Release et Packages.gz.

Le fichier Release

On commence par le fichier Release (à mettre dans le répertoire /data/debian) qui décrit le le dépôt. C'est un fichier texte à créer avec votre éditeur favori:

Les lignes importantes sont:

Archive: squeeze > Ce dépôt sera utilisable par des machines sous Debian 6 (nom de code Squeeze)

Component: main > Ce dépôt contient les composant principaux de la distribution Debian 6

Architecture: amd64 > Ce dépôt sera utilisable par des machines 64 bits

Le fichier Packages.gz

On continu ensuite avec le fichier Packages (compressé avec Gzip) qui contiendra la description (nom, version , description, dépendances...) de tous les paquets .deb se trouvant dans le répertoire. Il est bien sur impossible de construire ce fichier à la mimine. Nous allons donc utiliser l'utilitaire dpkg-scanpackages.

Cette opération va prendre un certain temps... Soyez patient...

Test local du dépôt

Avant d'utiliser ce dépôt sur d'autres machines, il faut dans un premier temps le tester sur notre machine hébergeant le dépôt. Pour cela il faut éditer le fichier /etc/apt/sources.list pour y laisser seulement la ligne suivante:

On met ensuite à jour la base APT de notre machine:

Installation du serveur Web pour proposer le dépôt à d'autres machines

Pour que votre dépôt soit visible depuis les autres machines de votre réseau, le plus simple est d'y installer un serveur Web qui va présenter le répertoire /data/debian en utilisant le protocole HTTP.

Personnellement, j'utilise le serveur Web NGinx:

Puis en éditant le fichier /etc/nginx/sites-enabled/defaults:

On relance NGinx pour prendre en compte la configuration:

Utilisation du dépôt local

Pour utiliser notre beau dépôt local sur une autre machine Debian Squeeze, il suffit d'éditer le fichier /etc/apt/sources.list pour y laisser seulement la ligne suivante:


Ou 192.168.1.100 est à remplacer par l'adresse IP du serveur hébergeant votre dépôt.

On met ensuite à jour la base APT de notre machine:

Il ne reste plus qu'a installer vos logiciels en utilisant la commande apt-get install !

Sources pour la rédaction de ce billet: