Table des matières

Création d'un dépôt personnalisé

Présentation

Cette page explique comment créer son propre dépôt Debian. Je n'ai validé cette procédure qu'une seule fois, donc il est possible que j'ai oublié de noter certaines étapes. Merci d'en faire part dans le forum.

Installation

On commence par installer apache2, de manière basique :

apt-get install apache2

Puis on installe debarchiver et dpkg-scanpackages :

apt-get install debarchiver devscripts

Configuration

Ensuite il faut créer les répertoires qui accueilleront les paquets :

mkdir -p /var/www/debian
mkdir /var/www/debian/dists/
mkdir /var/www/debian/_incoming/

Le répertoire dists contiendra l'arborescence du dépôt et _incoming sera le répertoire où debarchiver viendra chercher les nouveaux paquets pour les placer au sein de l'arborescence.

Enfin il suffit d'éditer le fichier /etc/debarchiver.conf et de modifier les paramètres suivants :

Extrait de debarchiver.conf
$destdir = "/var/www/debian/dists";
$inputdir = "/var/www/debian/_incoming";
@distributions = ('etch', 'lenny', 'testing', 'unstable');
@sections = ('main', 'universe', 'multiverse');

Si vous souhaitez recevoir un message lorsqu'un paquet est ajouté remplissez la section :

Extrait de debarchiver.conf
@mailtos = ('Maintainer', The Maintainer field in control file
'Uploaders', The Uploaders field in control file
'@bar.com', User id @bar.com that own the changes file
'installer@foo.com', An explicit email address
'Changed-By'); The email in the changelog file

Initialisation

Il faut maintenant créer l'arborescence du dépôt :

debarchiver

Vérifier le résultat :

ls -lR /var/www/debian/dists

Un script cron se trouve dans /etc/cron.d/debarchiver.
Par défaut debarchiver est executé toutes les 5 minutes.
Le répertoire _incoming est alors scanné à la recherche de nouveaux paquets à ajouter sur le dépôt.

Publier le dépôt

L'arborescence peut être rendue publique par HTTP ou FTP.
Nous prenons ici l'exemple d'un serveur apache2.

Voici la configuration d'un virtual host (ubuntu.votredomaine.com)

VirtualHost
<VirtualHost *:80>
ServerName debian.votredomaine.com
ServerAlias debian.votredomaine.com
ServerAdmin webmaster@votredomaine.com
DocumentRoot /var/www/debian 
ErrorLog /var/log/apache2/debian-error.log 
CustomLog /var/log/apache2/debian-access.log combined<br 
</VirtualHost> 
VirtualHost
<Directory> "/data/www/debian"  
Options Indexes Includes FollowSymLinks MultiViews 
IndexOptions FancyIndexing SuppressHTMLPreamble NameWidth=* 
IndexIgnore _incoming _style 
HeaderName /_style/HEADER.html 
ReadmeName /_style/README.html
</Directory>

La commande IndexIgnore permet de cacher le répertoire _incoming.
HEADER.html et README.html permettent d'améliorer le rendu visuel de l'aborescence.

Ajouter un paquet

Placez tous les fichiers générés pendant la création du paquet (pas uniquement le .deb) dans le répertoire _incoming et attendre 5 minutes.

Si vous êtes pressé exécutez directement la commande :

debarchiver -so

Utiliser le dépôt

Ajoutez les dépôts créés:

echo " deb http://@IP_SERVEUR/depots debian main "  >>  /etc/apt/sources.list
apt-get update
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !