logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Mise en place d'un environnement de développement de paquets Debian

  • Objet : Mise en place d'un environnement de développement de paquets Debian
  • Niveau requis :
  • Commentaires : Vous voulez construire / créer / reprendre / aider à maintenir un paquet Debian.
    • Création par captnfab 28/02/2014
    • Testé par <…> le <…> FIXME
  • Commentaires sur le forum : ici 1)

Nota :

Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

La construction de paquets Debian est connue pour ne pas être une chose simple. Cependant, comme les personnes amenées à le faire sont parmi les plus compétentes des utilisateurs Debian, les outils développés sont de qualité. La prise en main n'est cependant pas toujours des plus simples…

Ce tuto tente te rassembler les différentes informations à droite à gauche afin de donner un guide indiquant la marche à suivre pour, à partir de zéro2), mettre en place votre chaîne de construction de paquets Debian.

Installation dédiée

La première chose que je conseille fortement est de s'installer une Debian dédiée. En effet, les outils de développement sont à prendre dans les branches testing/unstable de Debian. Personnellement, j'ai un conteneur Debian testing qui me sert au développement, et en particulier au développement de paquet Debian. Cela m'évite de «polluer» le reste du système avec des paquets pas toujours nécessaires.

La solution que je préconise est donc la création d'un conteneur dédié, que l'on rangera par exemple dans /srv/devdeb. Pour ce faire, voyez les tutos

  • lxc si vous préférez créer un conteneur plutôt qu'un simple chroot.

Une solution plus basique est de créer un chroot de développement :

Proxy cache dédié aux paquets Debian

Les outils de construction des paquets auront besoin de télécharger les mêmes paquets à plusieurs reprises. Aussi, pour accélérer le processus et gagner de la bande passante je vous conseille de mettre en place un serveur proxy dédié aux paquets Debian. Notez que ce serveur proxy peut être utile à tout votre parc informatique…

Comme le serveur doit être lancé à chaque fois, il vaut mieux l'installer dans le conteneur ou, dans le cas d'un chroot, directement sur le système hôte. Ou encore, sur une machine dédiée de votre réseau…

apt-get install apt-cacher-ng

Le proxy écoutera par défaut sur le port 3142 de la machine.

Pour l'utiliser, il suffit de rajouter dans chaque installation (chroot / conteneur compris) le fichier suivant dans le répertoire /etc/apt/apt.conf.d/00proxy.

/etc/apt/apt.conf.d/00proxy
Acquire::http::Proxy "http://127.0.0.1:3142";

En remplaçant 127.0.0.1 par l'adresse idoine.

Préparation du matériel cryptographique

Pour la soumission de vos paquets, il sera nécessaire que vous authentifiez vos paquets en les signant au moyen d'une clé GPG. Si vous décidez d'héberger un dépôt pour le suivi de version de votre paquet sur les serveurs Debian, il vous faudra également une clé ssh.

Ces opérations sont à effectuer dans le chroot ou dans le conteneur.

Clés ssh

À indiquer par exemple dans votre compte Alioth pour vous connecter aux serveurs Debian.

Installation

apt-get install openssh-client

Préparation

Génération de la paire de clés ssh :

ssh-keygen -f ~/.ssh/debian_rsa

En savoir plus

Clés GPG

Utilisés pour signer (ou chiffrer) les courriels et les paquets Debian.

Installation

apt-get install gnupg 

Génération

Génération de la clé privée GPG :

gpg --gen-key

Génération du certificat de révocation (remplacer XXXXXXXX par l'ID de votre clé) :

gpg --output revoke.asc --gen-revoke XXXXXXXX

Génération de la clé publique :

gpg --output ~/votre-login.gpg --export votre@adresse-email.org

Génération de la clé publique version ASCII :

gpg --armor --export votre@adresse-email.org

GPG Agent

Pour ne pas avoir à retaper la passphrase à chaque signature, on peut utiliser gpg-agent, qui fonctionne de la même manière que ssh-agent. Pour ce faire, il faut rajouter au fichier ~/.gnupg/gpg.conf le code suivant:

~/.gnupg/gpg.conf
use-agent

En savoir plus

Outil de construction des paquets : cowbuilder

Un paquet doit être constructible sans problème depuis un environnement frais. cowbuilder se charge de générer un environnement frais et d'y compiler le paquet.

Upload des paquets

Pour qu'un paquet Debian se retrouve dans les archives officielles, ou sur le site des mentors, il faut que quelqu'un l'upload sur les serveurs Debian.

Gestion d'un paquet avec git et git-buildpbckage

Le suivi d'un paquet Debian est une tâche qui peut être facilitée par l'utilisation d'un logiciel de suivi de version (VCS) tel que Git. Des outils dédiés à Git3).

Installation

apt-get install git-buildpackage pristine-tar git gitk

Configuration

Pensez à indiquer vos coordonnées à Git, elles seront utilisées automatiquement lors des commits.

git config --global user.name "Votre Nom"
git config --global user.email votre@adresse-email.org

Récupérer les sources d'un paquet Debian

Compiler un paquet source Debian

Créer un paquet source Debian minimal

Installation des outils de développement

apt-get install autotools-dev automake autoconf dh-autoreconf devscripts dh-make

Empaqueter un logiciel en utilisant Git

Références

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
2)
Je parle d'une installation fraîche, il vous faudra des compétences techniques certaines et de l'expérience avant d'en comprendre toutes les étapes.
3)
Existent aussi pour les autres Vcs bien connus, comme mercurial ou subversion
doc/mentors/environnement-de-construction-de-paquets.1393627414.txt.gz · Dernière modification: 28/02/2014 23:43 par captnfab

Pied de page des forums

Propulsé par FluxBB