Table des matières

, ,

Comment créer votre propre dépôt Ubuntu ?

Cette courte documentation explique comment utiliser debarchiver pour créer et maintenir un dépôt Ubuntu et ainsi mettre à disposition vos propres paquets Ubuntu. Voir aussi: Comment créer un dépôt de paquets Ubuntu avec reprepro.

Installation

On commence par installez le paquet apache2. Puis les paquets debarchiver et la commande "dpkg-scanpackages" avec le paquet devscripts.

Configuration

Ensuite il faut créer les dossiers qui accueilleront les paquets:

sudo mkdir -p /var/www/ubuntu
sudo mkdir /var/www/ubuntu/dists/
sudo mkdir /var/www/ubuntu/_incoming/

Le dossier dists contiendra l'arborescence du dépôt et _incoming sera le dossier 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 avec les droits d'administration et de modifier les paramètres suivants :

$destdir = "/var/www/ubuntu/dists";
$inputdir = "/var/www/ubuntu/_incoming";
@distributions = ('trusty');
@sections = ('main', 'universe', 'multiverse');

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

  # @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 :

sudo debarchiver

Vérifier le résultat :

ls -lR /var/www/ubuntu/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 *:80>
    ServerName ubuntu.votredomaine.com
    ServerAlias ubuntu.votredomaine.com
    
    ServerAdmin webmaster@votredomaine.com
    DocumentRoot /var/www/ubuntu
    ErrorLog /var/log/apache2/ubuntu-error.log
    CustomLog /var/log/apache2/ubuntu-access.log combined
  </VirtualHost> 
   
  <Directory "/var/www/ubuntu">
    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’arborescence.

Ajouter un paquet

Placer tous les fichiers générés pendant la création du paquet (par exemple, le .deb, le .changes, et le .dsc) dans le répertoire _incoming et attendre 5 minutes.

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

sudo debarchiver -so

Utiliser le dépôt

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

deb http://ubuntu.votredomaine.com/ lucid main universe multiverse
deb-src http://ubuntu.votredomaine.com lucid main universe multiverse

Contributeurs: Fabien26, L'Africain.