Twitter YouTube SoundCloud LinkedIn

Tiennot blog

Comment créer un dépôt Debian

J'ai fais de mon mieux pour les explications qui suivent. Si néanmoins elles n'étaient pas claires, ou même si elles vous ont bien aidé, n'hésitez pas à poster un message sur mon blog :-)

Pour concevoir mon dépôt Debian, j'ai pas mal butté au niveau des docs disponibles décrivant comment en construire un. Plus simplement, je me suis rendu compte qu'il n'y en avait pas beaucoup :-( J'ai néanmoins trouvé ce tutoriel sur le site www.ubuntu-fr.org, qui m'a bien aidé, mais qui reste incomplet, et cet article sur le blog de Debian addict, qui m'a permi de construire un premier dépôt, néamnoins très basique et avec peu de possibilités... Je vais donc compléter ici ces deux articles, en me basant surtout sur celui de ubuntu-fr.org. Nous allons utiliser l'utilitaire reprepro.

Pour installer reprepro, rien de plus simple, car il se trouve dans les dépôts officiels; un petit apt-get install reprepro en root fera l'affaire. Pour la suite, je vous invite à lire en premier lieu le tutoriel de ubuntu-fr mentionné plus haut avant de commencer. Je pars aussi du principe que vous avez déjà vos paquets Debian prêts, avec tous les fichiers nécessaires (à savoir les fichiers suivants : *.deb, *.dsc, *.changes, *.orig.tar.gz, *.diff.gz; ceux-ci doivent se trouver obligatoirement dans le même dossier; voir ce tutoriel, toujours sur Ubuntu-fr)...

C'est bon ? Alors allons-y ! Nous allons déjà voir les différentes commandes pour créer le dépôt.

Création du dépôt

Il vous faut déjà un répertoire vide. Dans notre exemple, ce sera /var/www/debs, mais vous pouvez choisir autre chose. Ensuite, on va créer deux répertoires pour le moment vides, dans notre répertoire principal, à savoir conf et incoming. Le premier servira pour les fichiers de configuration, et le second pour uploader les paquets.

Une fois ceci fait, Nous allons créer le fichier de configuration. Celui-ci est à placer dans le répertoire conf. Il se nomme distributions. Voici son contenu :

Origin: Guilhem Tiennot
Label: Guilhem Tiennot
Suite: stable
Codename: stable
Version: all
Architectures: i386 amd64 source
Components: main
Description: dépôt Debian pour la distribution de mes logiciels pour Linux.

Voici donc le fichier de configuration de mon dépôt. Pour un autre exemple de fichier de configuration, voir cette partie du tutoriel de Ubuntu-fr (dont je me suis largement inspiré ;-)

Voilà, le dépôt Debian est maintenant prêt à être utilisé !

Ajout d'un paquet binaire

Pas très compliqué, l'ajout du paquet binaire. Avant tout, il faut se placer dans le répertoire du dépôt (ici /var/www/debs, je le rappelle) :

cd /var/www/debs

Et nous allons enfin utiliser l'utilitaire reprepro, avec la commande suivante :

reprepro -Vb . includedeb (distribution) (nom_du_paquet)

Dans le cas de mon dépôt Debian, j'ai choisi de distribuer mes paquets indépendamment de la distribution, ce qui me donne donc :

reprepro -Vb . includedeb stable (nom_du_paquet)

Et reprepro se charge tout seul des histoires d'architecture, et autres... Si c'est pas génial :-)

Ajout d'un paquet source

Jusqu'ici, je me suis contenté de plagier en l'adaptant le tutoriel de Ubuntu-fr. Les sections qui suivent sont par contre vraiment de moi. Voyons maintenant comment ajouter un paquet source...

La commande à utiliser diffère peu de la précédente :

reprepro -Vb . includedsc (distribution) (nom_du_paquet)

où (nom_du_paquet) est le fichier *.dsc correspondant aux sources du logiciel.

Utilisation du dépôt

Avoir un dépôt, c'est bien; savoir l'utiliser, c'est mieux ! Pour utiliser correctement votre dépôt, il vous faut ajouter sa ligne dans votre fichier /etc/apt/sources.list :

deb http://votre_site_où_se_trouve_le_dépôt/debs (distribution) main

Par exemple, pour mon dépôt, ça donne :

deb http://guilhem.toile-libre.org/debs stable main

Pour ajouter le dépôt de sources, procédez exactement de la même façon, mais en remplaçant le "deb" par "deb-src".

La clé GPG

En utilisant votre dépôt, vous aurez remarqué des messages d'erreurs récurrents : "paquet non authentifié". Ceci parce que votre dépôt n'est pas signé à l'aide d'une clé GPG. J'ai longtemps butté sur ce problème, mais j'ai réussi à trouver comment faire dans la page de man de reprepro (comme quoi elles servent, ces pages de man trop peu consultées ;-) Je vous livre la solution...

Je pars ici du principe que vous avez déjà une clé GPG prête à l'emploi (voir ce tutoriel, toujours sur Ubuntu-fr !!). La suite est très simple. Votre clé porte un identifiant du genre C55C4C3F (ça c'est ma clé). Notez-le dans un coin, et dans votre fichier de configuration (/var/www/debs/conf/distributions, au cas où vous l'auriez déjà oublié), ajoutez tout à la fin la ligne suivante :

SignWith: votre_identifiant_de_clé

Et c'est tout ! Dans mon cas, ça donne :

SignWith: C55C4C3F

Et maintenant, à chaque ajout de paquet, reprepro va vous demander votre phrase de passe pour le signer.

Pour ajouter votre clé à la liste de clés de apt-key, utilisez les commandes suivantes :

$ gpg --keyserver hkp://pgp.mit.edu:11371 --recv-keys C55C4C3F
$ gpg --export C55C4C3F | sudo apt-key add -

Ceci dans le cas de ma clé, adaptez à la situation. Avant de faire cela, votre clé devra avoir été exportée sur un serveur de clés (je vous laisse voir dans la doc Ubuntu-fr citée plus haut). Pour utiliser votre dépôt, les utilisateurs n'auront qu'à exécuter les commandes citées précédemment.

C'est fini ! J'ai essayé d'être le plus clair possible pour ce mini "tutoriel", donc si vous avez des questions, des remarques, des trucs qui ne vous semble pas clairs, des suggestions ou autres, ou si tout simplement ça vous a bien rendu service, postez un commentaire sur mon blog :-) Je ne peux que vous inciter fortement à aller consulter en plus de cela la page de man de reprepro (commande man reprepro).