Paquet Debian

Créer un dépôt Apt

Facebooktwitterredditpinterestlinkedinmail

Maintenant que vous savez créer un paquet Deb, nous allons voir comment créer un dépôt Apt qui vous permettra de les installer avec ce dernier, au lieu de Dpkg. Apt est une surcouche à Dpkg qui télécharge automatiquement les paquets Deb et sait gérer les dépendances entres eux.

Créer un dépôt Apt nécessite un serveur web. Cela dit, il ne lui faudra aucune configuration particulière, simplement une racine web. Son installation et sa configuration sortent donc du contexte de cet article. Nous partirons du principe que vous utilisez Apache2 ou Nginx et que sa racine web est située dans /var/www/html/.

On trouve déjà de nombreux tutoriels sur le sujet. Mais de ce que j’ai pu voir, la plupart traitent de l’installation d’un dépôt mono-distribution. Pour ma part, j’utilise souvent plusieurs distributions en parallèle (Debian, Raspbian, Ubuntu), et j’ai donc besoin de les faire cohabiter sur le même serveur.

Créer un dépôt Apt

Nous allons commencer par créer un dossier par distribution dans notre racine web :

Normalement, vous devriez pouvoir lister ces dossiers vides à l’aide de votre navigateur. Si ce n’est pas le cas, vérifiez :

  • Si votre serveur web est bien installé et démarré
  • La configuration de votre serveur web (+Indexes sous Apache)
  • Si le port 80 est bien en écoute par votre serveur web (sudo netstat -nlp | grep :80)
  • Si aucun pare-feu ne bloque ce port

La création d’un dépôt Apt se fait avec l’outil reprepro, documenté par la page man reprepro (1) :

Nous allons ensuite lui créer une arborescence, qui comme pour la partie web, contiendra une branche par distribution :

Ce qui donnera :

Dans chaque dossier conf/, nous allons configurer la famille de distributions qui correspond en créant deux fichiers :

  • Un fichiers de description des distributions (obligatoire). Il indiquera quelles distributions nous gérerons dans chaque famille, comment les indexer, etc.
  • Un fichier de configuration de reprepro (optionnel). Il indiquera les options de reprepro par famille (verbosité, chemins, etc).

La syntaxe complète du fichier distributions est indiquée dans la page man reprepro (1). Voici celui que nous utiliserons pour héberger les paquets que nous avons créé dans l’article précédent pour les distributions Wheezy et Jessie de la famille Debian :

Je vous laisse le soin de créer ceux des autres familles en fonction de vos besoins.

Le fichier options vous permet d’enregistrer des options d’appel de reprepro pour chaque famille de distributions. Documenté aussi dans la page man, il doit contenir les options en ligne de commande de reprepro sans leurs double tiret, une par ligne :

Je vous laisse le soin de créer ceux des autres familles en fonction de vos besoins.

Nous allons créer un dossier par distribution dans chaque dossier incomming/ de chaque famille :

Même chose pour les autres familles.

Nous pouvons maintenant placer nos Debs dans /var/reprepro/debian/incoming/jessie/, puis appeler reprepro pour les injecter dans sa base de données, qui sera créée à la volée lors du premier appel :

Note: Si vous obtenez une erreur du type : « Second appearance of ‘Origin’ in the same chunk!« , vous avez probablement eu un accident de copier-coller et devrez refaire votre saut de ligne entre les chunks.

Nous pouvons voir le résultat en ouvrant le dossier /debian avec notre navigateur. Reprepro a créé des dossiers dist/ et pool/, avec toutes les meta données que l’on a l’habitude de voir sur un dépôt Apt. Vous pouvez si vous le souhaitez supprimer ce Deb du dossier incomming/, il ne sert plus à rien.

En bonus, voici un script qui mettra a jour plus simplement vos dépôts :

Ce script va automatiquement descendre dans chaque dossier incomming/, ajouter les Debs qu’il trouvera, puis les supprimera lorsqu’il aura réussi, laissant derrière lui ceux qui n’auront pas été importés.

Utiliser votre dépôt Apt

Pour qu’une machine puisse prendre en compte votre dépôt il faut l’ajouter aux sources Apt. Il y a deux façons de faire :

  • Créer un fichier /etc/apt/sources.list.d/mon-depot.list
  • L’ajouter au fichier /etc/apt/sources.list

La première méthode est la plus propre, mais ne fonctionne que sur des systèmes récents. La seconde méthode fonctionne sur tous les systèmes.

Les lignes à créer ou ajouter selon le cas, sont formées comme suit :

Bien-sûr, vous remplacerez l’adresse IP 192.168.1.2 par l’adresse ou le nom de la machine qui vous sert de dépôt.

Pour que votre système voit vos Debs, il faut mettre à jour sa base de données maintenant qu’il connaît ce nouveau dépôt :

On voit ici qu’il a bien reconnu mon serveur, puisque son adresse apparaît dans la liste, au milieu des autres (que j’ai volontairement omis).

On voit aussi qu’il manque des choses sur notre dépôt, mais qu’Apt a choisi d’ignorer. Il s’agit des lignes qui commencent par Ign. Certaines sont purement optionnelles, comme les traductions, d’autres seraient bien venues, comme les signatures, qui feront l’objet d’un autre article.

On peut aller plus loin en recherchant les paquets que notre nouveau dépôt est sensé servir :

Je vais maintenant installer ces paquets et leurs dépendances avec un simple apt-get :

Comme le montre la sortie d’écran, il ne nous reste plus qu’à signer nos paquets avec GPG pour atteindre le degré de propreté supérieur 🙂

Facebooktwitterredditpinterestlinkedinmail

2 commentaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *