[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]
Ce document essaie de décrire à l'utilisateur Debian moyen, et au développeur en devenir, la construction d'un paquet Debian. Il utilise un langage assez courant et est complété par des exemples, selon le vieux proverbe romain : « Longum iter est per preaecepta, breve et efficax per exempla ! » (c'est long par la règle, court et efficace par l'exemple !).
Ce document a été mis à jour pour la version Squeeze de Debian. [1]
Une des choses qui font de Debian une distribution de si haut niveau est son système de paquets. Bien qu'il existe une grande quantité de logiciels au format Debian, vous devrez parfois installer un logiciel qui ne l'est pas. Vous pouvez vous demander comment faire vos propres paquets et peut-être pensez-vous que c'est une tâche très difficile. Eh bien, si vous êtes vraiment un débutant sous Linux, c'est dur, mais si vous étiez un débutant, vous ne seriez pas en train de lire ce document. :-) Vous devez en savoir un peu sur la programmation Unix, mais vous n'avez certainement pas besoin d'être un magicien.
Une chose est sûre, cependant : pour créer et maintenir correctement des paquets Debian, il faut beaucoup de temps. Ne vous faites pas d'illusion, pour que votre système fonctionne, les responsables doivent à la fois être techniquement compétents et consciencieux.
Ce document va expliquer toutes les étapes les plus petites (et peut-être a priori insignifiantes), vous aider à créer ce premier paquet, et à gagner de l'expérience pour construire les versions suivantes ainsi peut-être que d'autres paquets.
Si vous avez besoin d'aide sur l'empaquetage, veuillez vous reporter en Où demander de l'aide, Section 1.4.
Les nouvelles versions de ce document devraient toujours être disponibles en
ligne sur http://www.debian.org/doc/maint-guide/
.
La version de référence en anglais est disponible sur http://www.debian.org/doc/maint-guide/index.en.html
et dans le paquet maint-guide
. La traduction en français est
également disponible dans le paquet maint-guide-fr
.
Avant de commencer quoi que ce soit, vous devriez vous assurer d'avoir correctement installé certains paquets nécessaires au développement. Notez que la liste ne contient aucun paquet marqué essential ou required (essentiel ou requis) — nous supposons que ceux-ci sont déjà installés.
Les paquets suivants sont fournis dans l'installation standard de Debian, de sorte que vous les avez probablement déjà (ainsi que les paquets supplémentaires dont ils dépendent). Néanmoins, vous devriez le vérifier avec « aptitude show paquet ».
Le paquet le plus important à installer sur un système de développement est
build-essential
. Lors de son installation, il tirera
avec lui d'autres paquets nécessaires à un environnement de compilation de
base.
Pour certaines catégories de paquets, c'est tout ce dont vous aurez besoin. Cependant d'autre paquets, bien que non essentiels à toutes les constructions de paquet, sont utile ou peuvent être nécessaire pour votre paquet :
file
— ce programme pratique peut déterminer la nature d'un
fichier (voir file(1)
) ;
patch
— ce programme très utile prend un fichier contenant
une liste de différences (produite par le programme diff
) et
l'applique au fichier original, produisant une version modifiée (voir
patch(1)
) ;
perl
— Perl est un des langages de script les plus utilisés
sur les systèmes modernes similaires à Unix, souvent qualifié de
« tronçonneuse suisse d'Unix » (voir perl(1)
) ;
python
— Python est un autre des langages de script les plus
utilisés sur le système Debian qui combine une remarquable puissance et une
syntaxe très claire (voir python(1)
) ;
autoconf
, automake
et autotools-dev
— beaucoup de nouveaux programmes utilisent des scripts de configuration
et des fichiers Makefile
prétraités à l'aide de programmes
comme ceux-ci (voir « info autoconf »,
« info automake »). autotools-dev
conserve les versions à jour de certains de ses fichiers automatiques et
fournit une documentation sur la meilleure façon d'utiliser ces
fichiers ;
dh-make
et debhelper
— dh-make
est
nécessaire pour créer le squelette de notre exemple de paquet et il utilise
certains outils de debhelper
pour créer les paquets. Ils ne sont
pas indispensables pour la création des paquets, mais ils sont
fortement recommandés pour les nouveaux responsables. Ils rendent le
processus complet bien plus facile à démarrer et à contrôler par la suite
(voir dh_make(1)
, debhelper(1)
et
/usr/share/doc/debhelper/README
) [2] ;
devscripts
— ce paquet contient de jolis scripts utiles
pouvant aider les responsables, mais ils ne sont pas indispensables pour la
création de paquets. Les paquets recommandés et suggérés par celui-ci
valent le coup d'œil (voir
/usr/share/doc/devscripts/README.gz
) ;
fakeroot
— cet utilitaire vous laisse prétendre être le
superutilisateur, ce qui est nécessaire pour certaines parties du processus de
construction (voir fakeroot(1)
) ;
gnupg
— un outil qui vous permet de signer
numériquement les paquets. Ceci est spécialement important si vous comptez
les distribuer à d'autres personnes, et c'est certainement ce que vous ferez
quand votre travail sera inclus dans la distribution Debian (voir
gpg(1)
) ;
gfortran
— le compilateur Fortran 95 de GNU,
nécessaire si votre programme est écrit en Fortran (voir
gfortran(1)
) ;
gpc
— le compilateur Pascal de GNU, nécessaire si votre
programme est écrit en Pascal. Mérite d'être mentionné ici,
fp-compiler
, le compilateur pascal libre, convient également
(voir gpc(1)
, ppc386(1)
) ;
xutils-dev
— certains programmes, d'ordinaire ceux conçus
pour X11, utilisent aussi ces programmes pour générer les fichiers
Makefile
à partir d'un ensemble de fonctions macros (voir
imake(1)
, xmkmf(1)
) ;
lintian
— c'est le vérificateur de paquet Debian, qui peut
indiquer de nombreuses erreurs courantes après la construction du paquet et
expliquer les erreurs trouvées (voir lintian(1)
,
diffstat(1)
,
/usr/share/doc/lintian/lintian.html/index.html
) ;
pbuilder
— ce paquet contient des programmes utilisés pour
créer et maintenir un environnement « chroot
é ».
Construire un paquet Debian dans cet environnement permet de vérifier les
dépendances correctes de construction et évite les bogues FTBFS
(« Fails To Build From Source » pour les échecs de construction à
partir du paquet source) (voir pbuilder(8)
et
pdebuild(1)
) ;
patchutils
— ce paquet contient certains utilitaires pour
travailler avec les correctifs comme les commandes lsdiff
,
interdiff
et filterdiff
;
quilt
— ce paquet aide à gérer un ensemble de correctifs
en gardant une trace du rôle de chacun. Ils sont logiquement organisés en
pile, et vous pouvez les appliquer (« push »), les enlever
(« pop »), et les rafraîchir facilement en parcourant le pile
(voir quilt(1)
et
/usr/share/doc/quilt/README.Debian
) ;
git
— ce paquet fournit un système de gestion de version
populaire conçu pour manipuler de très gros projets rapidement et
efficacement ; il est utilisé pour des projets libres de grande
envergure, en particulier le noyau Linux (voir git(1)
et
/usr/share/doc/git-doc/index.html
).
Les documents suivants sont très importants et doivent être lus en parallèle à ce document :
debian-policy
— la Charte Debian
inclut des explications sur la structure et le contenu de l'archive Debian,
plusieurs considérations sur l'architecture du système d'exploitation, la
norme de hiérarchie des fichiers (« Filesystem Hierarchy
Standard » ou FHS, qui dit où chaque fichier et répertoire doit se
trouver), etc. Le plus important pour vous est qu'elle décrive les critères
que chaque paquet doit vérifier pour être inclus dans la distribution (voir
/usr/share/doc/debian-policy/policy.html/index.html
) ;
developers-reference
— la Référence du
développeur Debian
concerne tout ce qui n'est pas spécifique aux
détails techniques de la création de paquets, comme la structure des
archives, comment renommer, abandonner, choisir les paquets, faire une NMU («
Non-Maintainer Uploads » ou mise à jour indépendante), comment gérer les
bogues, les meilleures pratiques d'empaquetage, où et quand faire des envois
de paquets, etc. (voir
/usr/share/doc/developers-reference/
) ;
Le tutoriel des
Autotools
fournit un très bon tutoriel pour le système de construction GNU
connu comme les GNU Autotools
dont les composants les plus
importants sont Autoconf, Automake, Libtool, et gettext ;
gnu-standards
— ce paquet contient deux documentations
issues du projet GNU : les normes GNU de
codage
, et les informations pour
les responsables de programme GNU
. Bien que Debian n'exige pas que
ces recommandations soient suivies, elles sont néanmoins utiles en tant que
lignes directrices et bon sens. (voir
/usr/share/doc/gnu-standards/standards.html
et
/usr/share/doc/gnu-standards/maintain.html
).
Si ce document entre en contradiction avec ce qui est décrit dans la Charte
Debian ou la référence du développeur, elles sont prioritaires. Veuillez
signaler un bogue sur le paquet maint-guide
.
Les courtes descriptions données ci-dessus ne servent que d'introduction à ce que fait chaque paquet. Avant de continuer, veuillez lire attentivement la documentation de chaque programme, au moins l'utilisation standard. Cela peut vous sembler fastidieux maintenant, mais plus tard vous serez très content de l'avoir fait.
Deux sortes de paquets existent :
paquet source : un paquet source est un ensemble de
fichiers contenant le code et les données à compiler et transformer en
programmes exécutables et documents formatés. Il est généralement
distribué sous forme d'une association des fichiers
*.orig.tar.gz
, *.debian.tar.gz
(ou
*.diff.gz
), et *.dsc
. D'autres archives et formats
de compression peuvent également être utilisés ;
paquet binaire : un paquet binaire contient les
programmes exécutables et documents formatés. Il est généralement
distribué sous la forme d'un fichier *.deb
pour le système
Debian normal et *.udeb
pour l'installateur Debian.
Ne mélangez pas les termes comme source du programme et paquet source du programme !
Plusieurs noms de rôle sont utilisés au sein de Debian :
auteur amont : la personne qui a créé le programme à l'origine ;
responsable amont : la personne qui maintient actuellement le programme ;
responsable : la personne qui maintient le paquet Debian du programme ;
parrain : la personne qui aide les responsables à envoyer des paquets dans l'archive officielle de paquets Debian après en avoir vérifié le contenu ;
mentor : la personne qui aide les responsables débutants pour l'empaquetage, etc.
développeur Debian (DD) : la personne qui est membre de Debian. Elle a tout les droits d'envoi vers l'archive officielle de paquets Debian ;
responsable Debian (DM) : la personne qui a des droits d'envoi limités vers l'archive officielle de paquets Debian.
Plusieurs noms de version sont utilisés dans Debian :
version source amont : soit la version source amont version ;
révision Debian : soit la révision par Debian d'un paquet revision ;
version de paquet Debian : la version de paquet Debian est mentionnée comme suit :
version pour un paquet binaire Debian natif et pour un paquet source Debian ;
version-revision pour un paquet binaire Debian non natif.
Veuillez lire les autres manuels pour plus de détail sur la terminologie.
Il n'est pas possible de devenir développeur Debian (DD) en
une nuit car il ne suffit pas de compétences techniques. Veuillez ne pas vous
décourager. Si c'est utile à d'autres, vous pouvez toujours envoyer vos
paquets soit en tant que responsable via un
parrain ou comme un responsable Debian. Voir
le coin du nouveau
responsable Debian
pour plus d'informations.
Remarquez qu'il n'est pas nécessaire de créer de nouveau paquet pour devenir un développeur Debian officiel. Contribuer aux paquets existants peut aussi fournir une voie pour devenir un développeur Debian. Beaucoup de paquets sont en attente de bons responsables (voir Choix du programme, Section 2.1).
Avant de vous décider à poser une question dans un lieu public, veuillez
RTFM. Ceci comprend la documentation sous /usr/share/doc/dpkg
,
/usr/share/doc/debian
,
/usr/share/doc/autotools-dev/README.Debian.gz
,
/usr/share/doc/paquet/*
et les pages de
man
et info
pour tous les programmes mentionnés dans
ce document. Consultez toutes les informations dans http://nm.debian.org/
.
Faire un petit paquet de test est une bonne façon d'apprendre les particularités de l'empaquetage. Examiner les paquets bien maintenus est le meilleur moyen d'apprendre comment les autres font leurs paquets.
Si vous avez encore des questions sur la création de paquets pour lesquelles
vous n'avez pas pu trouver de réponse dans la documentation, vous pouvez les
poser sur la liste de diffusion des mentors Debian en debian-mentors@lists.debian.org
.
Les responsables Debian les plus expérimentés seront heureux de vous aider,
mais au moins lisez une partie de la documentation avant de poser une
question !
Consultez http://lists.debian.org/debian-mentors/
pour plus d'informations sur cette liste de diffusion.
Quand vous recevrez un rapport de bogue (oui, un vrai rapport de bogue !)
vous saurez qu'il est temps de vous plonger dans le système de suivi de bogues
Debian
et de lire la documentation, pour être à même de gérer
les rapports efficacement. La lecture de la référence
du développeur, chapitre 5.8 « Manipulation des
bogues »
est fortement recommandée.
Si vous avez encore des questions, posez-les sur la liste de diffusion des
développeurs Debian en debian-devel@lists.debian.org
.
Consultez http://lists.debian.org/debian-devel/
pour plus d'informations sur cette liste de diffusion.
Même si tout fonctionne bien, il est temps de commencer à prier. Pourquoi ? Parce que dans quelques heures (ou jours) les utilisateurs du monde entier vont commencer à utiliser votre paquet, et si vous avez fait des erreurs critiques, vous serez bombardé par les courriers électroniques d'utilisateurs Debian furieux... :-)
Relaxez-vous et soyez prêt pour les rapports de bogues, parce qu'il y aura beaucoup plus de travail à faire avant que votre paquet soit parfaitement conforme aux règles Debian (une fois encore, lisez la vraie documentation pour les détails). Bonne chance !
[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]
Guide du nouveau responsable Debian
version 1.2.25, 2010-12-21 14:06:56 UTCjoy-mg@debian.org
frederic.dumont@easynet.be
adn+deb@diwi.org
david@tilapin.org
debian-l10n-french@lists.debian.org