Table des matières
La réécriture de ce tutoriel avec des contenus à jour et des exemples pratiques supplémentaires est disponible sur Guide du responsable Debian. Veuillez utiliser ce nouveau tutoriel comme document principal.
Quelques techniques sont à connaître pour rechercher des erreurs sur le paquet avant de l'envoyer sur les archives publiques.
Il est aussi conseillé d'effectuer des essais sur une machine différente de la vôtre. Vous devez observer de près chaque alerte ou erreur pour tous les tests décrits ici.
Si vous trouvez un nouveau fichier de correctif autocréé comme
debian-changes-*
dans le répertoire
debian/patches
après la construction de votre paquet
Debian non natif au format 3.0 (quilt)
, il y a des
chances que vous ayez accidentellement modifié quelques fichiers ou que le
script de construction ait modifié les sources amont. Si c'est de votre
faute, corrigez votre erreur. Si c'est provoqué par le script de
construction, corrigez l'erreur à la racine avec
dh-autoreconf comme en Section 4.4.3, « Personnalisation du fichier rules
» ou
contournez-la avec source/options
comme en Section 5.24, « source/options
».
Vous devez essayer votre paquet pour vérifier qu'il s'installe sans problème. La commande debi(1) vous permet d'essayer l'installation de tout paquet binaire créé.
$ sudo debi gentoo_0.9.12-1_i386.changes
Pour éviter les problèmes d'installation sur différents systèmes, vous devez
vérifier qu'il n'y a pas de nom de fichier en conflit avec ceux existants
dans d'autres paquets à l'aide du fichier
Contents-
téléchargé
depuis l'archive Debian. La commande apt-file peut être
pratique pour cela. S'il existe des collisions, veuillez prendre les mesures
nécessaires pour éviter ces vrais problèmes : en renommant le fichier, en
déplaçant le fichier commun dans un paquet différent dont plusieurs paquets
peuvent dépendre, en utilisant le mécanisme d'alternatives (consultez
update-alternatives(1)) en coordination avec les
responsables des autres paquets concernés, ou encore en déclarant une
relation de i386
Conflicts
dans le fichier
debian/control
.
Tous les scripts du responsable, (c'est-à-dire les fichiers
preinst
, prerm
,
postinst
et postrm
), sont
difficiles à écrire correctement, à moins qu'ils n'aient été générés
automatiquement par les programmes debhelper
. Ne les utilisez donc pas si vous êtes
un responsable débutant (consultez Section 5.18, « {post,pre}{inst,rm}
»).
Si le paquet utilise des scripts du responsable non triviaux, veuillez les essayer non seulement pour le processus d'installation, mais aussi les processus de suppression, purge et mise à niveau. De nombreux bogues dans les scripts du responsable surviennent lors de la suppression et de la purge. Utilisez la commande dpkg comme ceci pour les essayer :
$ sudo dpkg -r gentoo $ sudo dpkg -P gentoo $ sudo dpkg -i gentoo_version
-révision
_i386
.deb
Les séquences suivantes devraient être essayées :
installation de la version précédente (si elle existe) ;
mise à niveau depuis la version précédente ;
rétrogradation (« downgrade ») à la version précédente (optionnel) ;
purge ;
installation du nouveau paquet ;
suppression (« remove ») du paquet ;
nouvelle installation du paquet ;
purge ;
Pour votre premier paquet, vous devriez créer des paquets factices avec différentes versions pour essayer votre paquet à l'avance et éviter des problèmes par la suite.
Gardez à l'esprit que si votre paquet a déjà été publié avec Debian, des gens vont mettre à jour ce paquet à partir de la version qui était dans la publication Debian précédente. N’oubliez pas d'essayer aussi les mises à jour à partir de cette version.
Même si la réinstallation vers une version antérieure n'est pas officiellement gérée, il est préférable de la permettre.
Exécutez lintian(1) sur le fichier
.changes
. La commande lintian
exécute de nombreux scripts de tests pour vérifier la plupart des erreurs
habituelles d'empaquetage. [75]
$ lintian -i -I --show-overrides gentoo_0.9.12-1_i386.changes
Bien sûr, remplacez le nom de fichier par celui du fichier
.changes
créé pour votre paquet. La sortie de la
commande lintian utilise les balises suivants :
E:
pour erreur ; une violation certaine de la Charte ou
erreur d'empaquetage ;
W:
pour avertissement ; une violation possible de la
Charte ou erreur d'empaquetage ;
I:
pour information ; une information sur certains
aspects d'empaquetage ;
N:
pour note ; un message détaillé pour vous aider à
déboguer ;
O:
pour ignoré ; un message ignoré par le fichier
lintian-overrides
mais affiché avec le paramètre
--show-overrides
.
En cas d'avertissements, mettez au point le paquet pour les éviter ou
vérifiez qu'ils sont infondés. S'ils sont infondés, configurez les fichiers
lintian-overrides
comme décrit en Section 5.14, « {
».
paquet
.,source/}lintian-overrides
Vous pouvez reconstruire le paquet avec dpkg-buildpackage et lancer lintian en une seule commande, si vous utilisez debuild(1) ou pdebuild(1).
La commande debc(1) permet d'énumérer les fichiers du paquet Debian binaire.
$ debc paquet
.changes
La commande debdiff(1) peut comparer les contenus de fichiers entre deux paquets Debian source
$ debdiffancien-paquet
.dscnouveau-paquet
.dsc
La commande debdiff(1) permet aussi de comparer les listes de fichiers entre deux ensembles de paquets Debian binaires.
$ debdiffancien-paquet
.changesnouveau-paquet
.changes
Ces commandes sont utiles pour identifier ce qui a été modifié dans les paquets source et pour vérifier d'éventuelles modifications faites par inadvertance lors de la mise à jour des paquets binaires, comme par exemple des fichiers déplacés ou enlevés involontairement.
Vous pouvez comparer deux fichiers diff.gz
avec la
commande interdiff(1). C'est utile pour vérifier
qu'aucune modification involontaire n'a été effectuée sur les sources par le
responsable en mettant à jour les paquets à l'ancien format
source 1.0
.
$ interdiff -zancien-paquet
.diff.gznouveau-paquet
.diff.gz
Le nouveau format source 3.0
garde les modifications dans
plusieurs fichiers de correctifs comme décrit en Section 5.25, « patches/*
». Vous pouvez aussi suivre les modifications de tous les
fichiers debian/patches/*
en utilisant
interdiff.
Toutes ces opérations d'inspection de fichier peuvent être transformées en
un processus intuitif avec un gestionnaire de fichiers comme mc(1)
qui vous permet de consulter non seulement le contenu des fichiers paquet
*.deb
, mais aussi les fichiers
*.udeb
, *.debian.tar.gz
,
*.diff.gz
et *.orig.tar.gz
.
Soyez attentif aux fichiers inutiles ou de taille nulle, dans les paquets
binaires et source. Souvent les fichiers inutiles ne sont pas nettoyés
correctement ; adaptez le fichier rules
pour compenser.
[75] Il n'est pas nécessaire d'ajouter le paramètre -i -I
--show-overrides
à lintian si vous avez
personnalisé /etc/devscripts.conf
ou
~/.devscripts
comme décrit en Section 6.3, « Commande debuild ».