Créer un dépôt Debian local sans liaison Internet
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 8 DVD d'installation de Debian 6.0.3 (à télécharger ici)
- une machine sous Debian 6.0.3 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.0.3.
On crée 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):
On copie les fichiers .deb des DVD dans ce répertoire en utilisant la commande suivante (à répéter pour les 8 DVD):
A la fin de cette opération, le répertoire /data/debian devrait contenir l'ensemble des paquets .deb constituant la distribution stable de Debian Squeeze (pour une taille d'environ 33 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écri le le dépôt. C'est un fichier texte à créer avec votre éditeur favori:
Component: main
Origin: Nicolargo
Label: Le depot de Nicolargo
Architecture: amd64
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.
dpkg-scanpackages ./ /dev/null | gzip -9c > Packages.gz
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:
listen 80;
server_name localhost;
access_log logs/debianrepos.access.log main;
location /debian {
root /data/debian;
autoindex on;
}
}
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: