NOM¶
debhelper - Ensemble d'outils regroupés sous le nom de debhelper
SYNOPSIS¶
dh_* [
-v] [
-a] [
-i] [
-s]
[
--no-act] [
-ppaquet] [
-Npaquet]
[
-P tmpdir]
DESCRIPTION¶
Debhelper facilite la construction des paquets Debian. La philosophie qui
sous-tend debhelper est de fournir une collection de petits outils simples et
facilement compréhensibles qui seront exploités dans
debian/rules pour automatiser les tâches courantes liées
à la construction des paquets, d'où un travail allégé pour
le responsable. Dans une certaine mesure, cela signifie également que ces
outils peuvent être adaptés aux modifications éventuelles de la
Charte Debian. Les paquets qui utiliseront debhelper ne nécessiteront
qu'une simple reconstruction pour être conformes aux nouvelles
règles.
Un fichier
debian/rules typique, exploitant debhelper, appellera
séquentiellement plusieurs des commandes de debhelper ou bien utilisera
dh(1) pour automatiser ce processus. Des exemples de fichiers
debian/rules qui exploitent debhelper se trouvent dans
/usr/share/doc/debhelper/examples/
Pour créer un nouveau paquet Debian en utilisant debhelper, il suffit de
copier un des fichiers d'exemple et de le modifier manuellement. Il est
possible également d'essayer le paquet
dh-make qui contient une
commande dh_make automatisant partiellement le processus. Pour se familiariser
avec ces concepts, le paquet Debian
maint-guide contient un cours sur
la construction d'un premier paquet avec debhelper.
COMMANDES DE DEBHELPER¶
Voici la liste des commandes debhelper disponibles. Consulter leurs pages de
manuel respectives pour obtenir des informations complémentaires.
- dh_auto_build(1)
- Construire automatiquement un paquet
- dh_auto_clean(1)
- Faire le ménage automatiquement après une
construction de paquet
- dh_auto_configure(1)
- Configurer automatiquement un paquet préalablement
à sa construction
- dh_auto_install(1)
- Lancer automatiquement make install ou équivalent
- dh_auto_test(1)
- Exécuter automatiquement le jeu d'essai d'un
paquet
- dh_bugfiles(1)
- Installer les fichiers de personnalisation de rapports de
bogue dans les répertoires des paquets construits
- dh_builddeb(1)
- Construire des paquets binaires Debian
- dh_clean(1)
- Nettoyer les répertoires de construction du
paquet
- dh_compress(1)
- Comprimer les fichiers dans le répertoire de
construction du paquet et modifier les liens symboliques en
conséquence
- dh_fixperms(1)
- Ajuster les droits sur les fichiers du répertoire de
construction du paquet
- dh_gconf(1)
- Installer les fichiers par défaut de GConf et inscrit
les schémas
- dh_gencontrol(1)
- Produire et installer le fichier de contrôle
- dh_icons(1)
- Mettre à jour les caches des icônes
Freedesktop
- dh_install(1)
- Installer les fichiers dans le répertoire de
construction du paquet
- dh_installcatalogs(1)
- Installer et inscrire les catalogues SGML
- dh_installchangelogs(1)
- Installer les journaux de suivi des modifications
(changelog) dans les répertoires de construction du paquet
- dh_installcron(1)
- Installer les scripts cron dans etc/cron.*
- dh_installdeb(1)
- Installer des fichiers dans le répertoire DEBIAN
- dh_installdebconf(1)
- Installer les fichiers utilisés par debconf dans les
répertoires de construction du paquet
- dh_installdirs(1)
- Créer des sous-répertoires dans le
répertoire de construction du paquet
- dh_installdocs(1)
- Installer la documentation dans le répertoire de
construction du paquet
- dh_installemacsen(1)
- Inscrire un paquet additionnel Emacs
- dh_installexamples(1)
- Installer les fichiers d'exemples dans le répertoire
de construction du paquet
- dh_installifupdown(1)
- Installer les accroches (hooks) if-up et if-down
- dh_installinfo(1)
- Installer les fichiers info
- dh_installinit(1)
- Installer les scripts init ou les tâches upstart dans
le répertoire de construction du paquet
- dh_installlogcheck(1)
- Installer les fichiers de règles de vérification
des journaux (logcheck rulefiles) dans etc/logcheck/
- dh_installlogrotate(1)
- Installer les fichiers de configuration de la rotation des
journaux (logrotate)
- dh_installman(1)
- Installer les pages de manuel dans le répertoire de
construction du paquet
- dh_installmenu(1)
- Installer les fichiers du menu Debian dans le
répertoire de construction du paquet
- dh_installmime(1)
- Installer les fichiers « mime » dans le
répertoire de construction du paquet
- dh_installmodules(1)
- Inscrire les modules avec modutils
- dh_installpam(1)
- Installer les fichiers de support de PAM
- dh_installppp(1)
- Installer les fichiers ppp.ip-up et ppp.ip-down
- dh_installudev(1)
- Installer les fichiers de règles udev
- dh_installwm(1)
- Inscrire un gestionnaire de fenêtre (window
manager)
- dh_installxfonts(1)
- Inscrire les polices de caractères graphiques (X
fonts)
- dh_link(1)
- Créer les liens symboliques dans le répertoire de
construction du paquet
- dh_lintian(1)
- Installer les fichiers « override » de
lintian dans le répertoire de construction du paquet
- dh_listpackages(1)
- Énumérer les paquets binaires que debhelper va
traiter
- dh_makeshlibs(1)
- Créer automatiquement le fichier shlibs et
exécute dpkg-gensymbols
- dh_md5sums(1)
- Créer le fichier DEBIAN/md5sums
- dh_movefiles(1)
- Déplacer des fichiers depuis debian/tmp dans des
sous-paquets
- dh_perl(1)
- Déterminer les dépendances Perl et fait le
ménage après MakeMaker
- dh_prep(1)
- Faire le ménage en vue de construire un paquet
Debian
- dh_shlibdeps(1)
- Déterminer les dépendances envers les
bibliothèques partagées
- dh_strip(1)
- Dépouiller les exécutables, les
bibliothèques partagées, et certaines bibliothèques
statiques
- dh_testdir(1)
- Vérifier le répertoire avant de construire un
paquet Debian
- dh_testroot(1)
- Vérifier que le paquet est construit par le
superutilisateur (root)
- dh_usrlocal(1)
- Migrer les répertoires usr/local dans les scripts de
maintenance du paquet
Commandes obsolètes¶
Quelques commandes debhelper sont obsolètes et ne devraient plus être
utilisées.
- dh_desktop(1)
- Obsolète, ne pas l'utiliser
- dh_installmanpages(1)
- ancien programme d'installation des pages de manuel
(obsolète)
- dh_python(1)
- Déterminer les dépendances Python et ajoute des
scripts de maintenance Python postinst et prerm (obsolète)
- dh_scrollkeeper(1)
- Obsolète, ne pas l'utiliser
- dh_suidregister(1)
- Programme d'inscription suid (obsolète)
- dh_undocumented(1)
- Programme de création de liens symboliques vers
« undocumented.7 » (obsolète, ne pas
l'utiliser)
Autres commandes¶
Si le nom d'un programme commence par
dh_ et qu'il n'est pas dans les
listes ci-dessus, cela signifie qu'il ne fait pas partie de la suite
debhelper. Cependant, il devrait tout de même fonctionner comme les
autres programmes décrits dans cette page.
FICHIERS DE CONFIGURATION DE DEBHELPER¶
Beaucoup de commandes de debhelper utilisent des fichiers du répertoire
debian/ pour piloter leur fonctionnement. Outre les fichiers
debian/changelog et
debian/control, qui se trouvent dans tous
les paquets, et pas seulement dans ceux qui emploient debhelper, d'autres
fichiers peuvent servir à configurer le comportement des commandes
spécifiques de debhelper. Ces fichiers sont, en principe, nommés
debian/
paquet.toto (où
paquet est, bien sûr, à
remplacer par le nom du paquet concerné).
Par exemple,
dh_installdocs utilise un fichier appelé
debian/package.docs pour énumérer les fichiers de
documentation qu'il installera. Consulter les pages de manuel des
différentes commandes pour connaître le détail des noms et des
formats des fichiers employés. D'une façon générale, ces
fichiers de configuration énumèrent les fichiers sur lesquels devra
porter l'action, à raison d'un fichier par ligne. Quelques programmes de
debhelper emploient des paires fichier/destination voire des formats
légèrement plus compliqués.
Nota : pour le premier (ou le seul) paquet binaire énuméré
dans le fichier
debian/control, debhelper exploitera
debian/toto
quand aucun fichier
debian/paquet.toto n'est présent.
Dans quelques rares cas, il peut être utile d'exploiter différentes
versions de ces fichiers pour des architectures ou des systèmes
d'exploitation différents. S'il existe des fichiers appelés debian/
paquet.toto.
ARCH ou debian/
paquet.toto.
OS, dans
lesquels
ARCH et
OS correspondent respectivement au
résultat de «
dpkg-architecture -qDEB_HOST_ARCH » ou de «
dpkg-architecture -qDEB_HOST_ARCH_OS », alors ils seront
utilisés de préférence aux autres fichiers plus
généraux.
En général, ces fichiers de configuration sont employés pour
indiquer des listes de divers types de fichiers. Documentation, fichiers
d'exemples à installer, fichiers à déplacer et ainsi de suite.
Lorsque cela se justifie, dans des cas comme ceux-ci, il est possible
d'employer, dans ces fichiers, les jokers (wildcard) standard de
l'interpréteur de commandes (shell) (
? et
* et
[.. ]). Des commentaires peuvent être ajoutés
dans ces fichiers : les lignes commençant par
# sont
ignorées.
La syntaxe de ces fichiers est volontairement gardée très simple pour
les rendre faciles à lire, comprendre et modifier. Si vous
préférez la puissance et la complexité, vous pouvez rendre le
fichier exécutable, et écrire un programme qui affiche n'importe
quel contenu approprié à la situation. Dans ce cas, la sortie n'est
plus traitée pour développer les jokers (wildcards) ou supprimer les
commentaires.
OPTIONS PARTAGÉES DE DEBHELPER¶
Tous les programmes de debhelper acceptent les options suivantes.
- -v, --verbose
- Mode verbeux : affiche toutes les commandes qui
modifient le répertoire de construction du paquet.
- --no-act
- Empêche la construction de s'effectuer
réellement. Si cette option est utilisée avec -v, le
résultat sera l'affichage de ce que la commande aurait fait.
- -a, --arch
- Construit tous les paquets dépendants de
l'architecture.
- -i, --indep
- Construit tous les paquets indépendants de
l'architecture.
- -ppaquet, --package=paquet
- Construit le paquet nommé
« paquet ». Cette option peut être
répétée afin de faire agir debhelper sur plusieurs
paquets.
- -s, --same-arch
- Cette option était plus intelligente de l'option
-a, mais l'option -a est maintenant tout aussi
intelligente.
- -Npaquet,
--no-package=paquet
- Exclut le paquet spécifié du processus de
construction, même si l'option -a, -i ou -p
l'impliquait.
- --remaining-packages
- Exclut du processus de construction les paquets qui ont
déjà été construit préalablement par cette
commande debhelper (c'est-à-dire, si la commande est présente
dans le journal de debhelper du paquet). Par exemple, si vous avez besoin
d'invoquer la commande avec des options spéciales seulement pour
certains paquets binaires, utilisez cette option lors de la dernière
invocation de la commande pour construire le reste des paquets avec les
options par défaut.
- --ignore=fichier
- Ignore le fichier spécifié. Ceci peut être
utilisé si debian/ contient un fichier de configuration
debhelper avec une commande qui ne doit pas être pris en compte.
Nota : debian/compat, debian/control, et
debian/changelog ne peuvent pas être ignorés, mais il
n'existe aucune raison valable de les ignorer.
Par exemple, si vous récupérez en amont un fichier
debian/init que vous ne voulez pas que dh_installinit
installe, utilisez --ignore=debian/init
- -Ptmpdir, --tmpdir=tmpdir
- Utilise le répertoire tmpdir pour construire
les paquets. Sinon, par défaut, le répertoire utilisé est
« debian/ paquet »
- --mainpackage=paquet
- Cette option, peu utilisée, indique à debhelper
le nom du « paquet principal » pour lequel les fichiers
debian/toto peuvent être utilisés à la place des
fichiers habituels debian/paquet.toto. Par défaut, debhelper
considère que le « paquet principal » est le premier paquet
énuméré dans le fichier debian/control.
- -O=option|ensemble
- Cette option est utilisée par L <dh(1)>
pour passer une ou plusieurs options, spécifiées par
l'utilisateur, à toutes les commandes exécutées. Si la
commande prend en charge l'option ou l'ensemble d'options, elle prendra
effet. Si la commande n'accepte pas l'option (ou une partie de l'ensemble
d'options), elle sera ignorée.
OPTIONS COURANTES DE DEBHELPER¶
Certains programmes de debhelper acceptent les options ci-dessous. Consulter la
page de manuel de chaque programme pour une explication complète du
rôle de ces options.
- -n
- Ne pas modifier les scripts de maintenance du paquet
(postinst, postrm, etc.).
- -Xélément,
--exclude=élément
- Permet d'exclure un élément du traitement. Cette
option peut être employée plusieurs fois afin d'exclure
plusieurs éléments.
- -A, --all
- Précise que les fichiers (ou autres
éléments) indiqués dans la ligne de commande concernent
TOUS les paquets construits et pas seulement le premier.
OPTIONS DU PROCESSUS DE CONSTRUCTION¶
Les programmes debhelper
dh_auto_* comportent plusieurs processus
de construction et déterminent, de manière heuristique, lequel
utiliser et comment. Il peut être utile de modifier ce comportement par
défaut. Tous ces programmes
dh_auto_* acceptent les options
suivantes, typiquement passées à
dh(1), qui les passe ensuite
à tous les programmes
dh_auto_*.
- -Sprocessus de construction,
--buildsystem= processus de construction
- Oblige à utiliser le processus de construction
spécifié au lieu de tenter de déterminer automatiquement
celui qui pourrait être utilisable pour le paquet.
- -Drépertoire,
--sourcedirectory=répertoire
- Considère que les sources du paquet sont situées
dans le répertoire spécifié plutôt qu'au plus
haut niveau de l'arborescence du paquet source.
- -B[répertoire],
--builddirectory=[ répertoire]
- Permet de construire le paquet en dehors de la structure
source en utilisant le répertoire spécifié comme
répertoire de construction. Si le paramètre
répertoire n'est pas spécifié, un répertoire de
construction par défaut sera choisi.
Si cette option n'est pas spécifiée, la construction se fera dans
l'arborescence source à moins que le processus exige ou
préfère le faire en dehors de cette structure. Dans ce cas, le
répertoire par défaut sera utilisé même si
--builddirectory n'est pas spécifié.
Même si le système préfère utiliser, pour la
construction, un répertoire situé en dehors de l'arborescence
source, il autorise quand même la construction dans l'arborescence
source. Pour cela, il suffit d'utiliser un chemin d'accès au
répertoire de construction identique au chemin d'accès au
répertoire source.
- --parallel
- Cette option active la construction parallèle si le
système sous-jacent le permet. Le nombre de tâches
parallèles est contrôlé, lors de la construction, par la
variable d'environnement DEB_BUILD_OPTIONS ("Charte Debian,
section 4.9.1"). Ce nombre peut également être soumis aux
limites spécifiques du système.
Si cette option n'est pas spécifiée, debhelper n'activera pas, par
défaut, le parallélisme lors de la construction.
- --max-parallel=maximum
- Cette option implique --parallel et permet de
limiter le nombre de tâches qui pourront être lancées lors
d'une compilation parallèle. Si la construction du paquet est connu
pour ne fonctionner qu'avec un certain niveau de parallélisme, il est
possible de le régler à la valeur maximum censée
fonctionner, ou que vous souhaitez mettre en œuvre.
- --list, -l
- Liste tous les processus de construction supporté par
le système. Cette liste inclut à la fois les processus par
défaut et les processus tiers (marqués comme tels). Cette option
montre également le processus de construction automatiquement
sélectionné ou celui spécifié manuellement avec
l'option --buildsystem.
NIVEAUX DE COMPATIBILITɶ
Parfois, des modifications majeures de debhelper doivent être faites et
vont briser la compatibilité ascendante. Ces modifications sont
nécessaires pour conserver à debhelper ses qualités de
conception et d'écriture, car les besoins changent et le savoir-faire de
l'auteur s'améliore. Pour éviter que de tels changements ne cassent
les paquets existants, un concept de niveau de compatibilité debhelper a
été introduit. On précisera à debhelper le niveau de
compatibilité qu'il doit employer ce qui modifiera son comportement de
diverses manières.
Pour indiquer à debhelper le niveau de compatibilité à utiliser
il faut placer un nombre dans
debian/compat. Par exemple, pour
exploiter la version 9 :
% echo 9 > debian/compat
Le paquet nécessitera aussi une version de debhelper dans les
dépendances de construction au moins égale au niveau de
compatibilité utilisée pour la construction du paquet. Ainsi si le
paquet emploie le niveau 9 de compatibilité,
debian/control
devra contenir :
Build-Depends: debhelper (>= 9)
Sauf indication contraire, toute la documentation de debhelper suppose
l'utilisation du niveau de compatibilité le plus récent, et, dans la
plupart des cas ne précise pas si le comportement est différent avec
les niveaux de compatibilité antérieurs. De ce fait, si le niveau de
compatibilité le plus récent n'est pas celui utilisé, il est
fortement conseillé de lire les indications ci-dessous qui exposent les
différences dans les niveaux de compatibilité antérieurs.
Les niveaux de compatibilité sont les suivants :
- v1
- C'est le niveau initial de compatibilité de debhelper
d'où son numéro 1. Dans ce mode, debhelper emploiera
debian/tmp comme répertoire de l'arborescence du premier
paquet binaire énuméré dans le fichier control et
« debian/ paquet » pour tous les autres.
Ce mode est déconseillé.
- v2
- Dans ce mode, debhelper emploiera uniformément «
debian/ paquet » comme répertoire de l'arborescence de
chaque paquet construit.
Ce mode est déconseillé.
- v3
- Ce mode fonctionne comme v2 mais avec les ajouts
suivants :
- -
- Les fichiers de configuration de debhelper acceptent les
jokers * et ? lorsque cela a un sens. Pour
désactiver cette substitution et utiliser ces caractères tels
quels, il suffit de les préfixer avec une barre contre-oblique
(backslash).
- -
- Les scripts de maintenance du paquet (postinst et
postrm) feront appel à ldconfig quand
dh_makeshlibs sera lancé.
- -
- Chaque fichier de etc/ est automatiquement
marqué par dh_installdeb comme un fichier de
configuration.
- v4
- Les changements par rapport à la version 3
sont :
- -
- dh_makeshlibs -V n'inclura pas la partie Debian du
numéro de version dans la ligne de dépendance produite dans le
fichier shlibs.
- -
- Il est fortement conseillé de mettre le nouveau
${misc:Depends} dans debian/control pour compléter le
champs ${shlibs:Depends}.
- -
- dh_fixperms rendra exécutables tous les
fichiers des répertoires bin/ et etc/init.d.
- -
- dh_link corrigera les liens existants pour les
rendre conformes à la Charte Debian.
- v5
- Les changements par rapport à la version 4
sont :
- -
- Les commentaires sont ignorés dans les fichiers de
configuration de debhelper.
- -
- dh_strip --dbg-package indique maintenant le nom du
paquet qui doit recevoir les symboles de mise au point et non plus les
paquets d'où proviennent ces symboles.
- -
- dh_installdocs saute l'installation des fichiers
vides.
- -
- dh_install génère des erreurs si les
jokers (wildcards) ne correspondent à rien.
- v6
- Les changements par rapport à la version 5
sont :
- -
- Les commandes qui génèrent des lignes de codes de
maintenance les mettront dans l'ordre inverse dans les scripts
prerm et postrm.
- -
- dh_installwm installera un lien vers une page de
manuel esclave pour x-window-manager.1.gz s'il voit la page de
manuel dans le répertoire usr/share/man/man1 du
répertoire de construction du paquet.
- -
- dh_builddeb, préalablement, ne supprimait pas
les associations crées avec DH_ALWAYS_EXCLUDE s'il était
configuré sur une liste d'éléments tels que
CVS:.svn:.git. Maintenant il le fait.
- -
- Dh_installman permet d'écraser les pages de man
existantes dans le répertoire de construction du paquet.
Préalablement, il refusait en silence de le faire.
- v7
- Les changements par rapport à la version 6
sont :
- -
- dh_install cherchera récursivement les fichiers
dans debian/tmp s'il ne les trouve pas dans le répertoire
courant (ou dans le répertoire spécifié par
--sourcedir). Cela permet à dh_install
d'interopérer avec dh_auto_install, qui place les fichiers
dans debian/tmp, sans nécessiter de paramètres
particuliers.
- -
- dh_clean lit le répertoire debian/clean
et supprime les fichiers qui y sont mentionnés.
- -
- dh_clean supprime les fichiers *-stamp.
- -
- dh_installchangelogs déterminera à quel
fichier correspond le changelog amont si rien n'est
spécifié.
- v8
- Les changements par rapport à la version 7
sont :
- -
- Les commandes échoueront plutôt que de produire
une alerte lorsqu'elles recevront des options inconnues.
- -
- dh_makeshlibs va exécuter le programme
dpkg-gensymbols sur toutes les bibliothèques partagées
qu'il génère pour les fichiers shlibs. -X peut alors
être utilisé pour exclure certaines bibliothèques. En
outre, les bibliothèques rangées à des emplacements
inhabituels que pkg-gensymbols n'aurait pas traitées avant
qu'elles ne lui soient transmises, induisent un changement de comportement
qui peut causer l'échec de la construction de certains paquets.
- -
- dh exige que la séquence à exécuter
soit spécifiée en tant que premier paramètre. Tous les
commutateurs doivent venir après. C'est à dire qu'il faut
écrire « dh $@ --toto », et non
« dh --toto $@ »
- -
- Dh_auto_* utilise préférentiellement
Module::Build de Perl au lieu de Makefile.PL.
- v9
- C'est la version dont l'usage est recommandé.
Les changements par rapport à la version 8 sont :
- -
- Prise en charge multiarchitecture. En particulier
dh_auto_configure passe les répertoires multiarchitectures
à autoconf dans --libdir et --libexecdir.
- -
- dh connaît les dépendances classiques
entre les cibles de debian/rules. Donc
« dh binary » exécutera toutes les
cibles build, build-arch, build-indep, install, etc. présentes
dans le fichier rules. Il n'est pas nécessaire de définir
une cible binary avec des dépendances explicites sur les autres
cibles.
- -
- dh_strip compresse les fichiers de symboles de mise
au point pour réduire la taille d'installation des paquets -dbg.
- -
- dh_auto_configure n'inclut pas le nom du paquet
source dans --libexecdir en utilisant autoconf.
- -
- dh n'active pas --with=python-support par
défaut.
- -
- Tous les programmes debhelper dh_auto_* et
dh configurent les variables d'environnement renvoyées par
dpkg-buildflags, sauf si elles sont déjà
configurées.
- -
- dh_auto_configure passe les CFLAGS, CPPFLAGS et
LDFLAGS de dpkg-buildflags à Makefile.PL et
Build.PL de Perl.
- -
- dh_strip place les symboles de mise au point
séparés à un endroit en fonction de leur identifiant de
construction (build-id).
- -
- Les fichiers de configuration exécutables de debhelper
sont exécutés et leur sortie est utilisée comme
configuration.
- v10
- Ce niveau de compatibilité est encore en
développement, à utiliser avec précaution.
Les changements par rapport à la version 9 sont :
REMARQUES¶
Prise en charge de plusieurs paquets binaires¶
Si le paquet source produit plus d'un paquet binaire, les programmes de
debhelper construiront tous les paquets binaires. Si le paquet source doit
construire un paquet dépendant de l'architecture, et un paquet
indépendant de l'architecture, ce comportement ne conviendra pas. En
effet, il convient de construire les paquets dépendants de l'architecture
dans « binary-arch » de
debian/rules, et les paquets
indépendants de l'architecture dans « binary-indep ».
Pour résoudre ce problème, et pour un meilleur contrôle sur la
construction des paquets par debhelper, tous les programmes de debhelper
acceptent les options
-a,
-i,
-p, et
-s. Ces
options sont cumulatives. Si aucune n'est précisée, les programmes
de debhelper construisent tous les paquets énumérés dans le
fichier de contrôle.
Génération automatique des scripts Debian de
maintenance du paquet¶
Certaines commandes de debhelper produisent automatiquement des lignes de code
de maintenance du paquet. Pour les inclure dans vos propres scripts de
maintenance du paquet, il convient d'ajouter
#DEBHELPER# à
l'endroit où les lignes de code générées devront être
insérées.
#DEBHELPER# sera remplacé, par les lignes de
code générées automatiquement, lors de l'exécution de
dh_installdeb.
Si un script de maintenance n'existe pas et que debhelper doit y inclure quelque
chose, alors debhelper créera le script de maintenance complètement.
Toutes les commandes de debhelper qui produisent automatiquement des lignes de
code de cette façon peuvent inhiber cette production grâce à
l'option -n (voir ci-dessus).
Nota : Les lignes de code insérées seront écrites dans le
langage de l'interpréteur de commandes (shell). De ce fait, il est
impossible de les placer directement dans un script Perl. Pour les
insérer dans un script Perl, voici une solution. (S'assurer que $1, $2,
etc. sont bien définis par la commande set.) :
my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
#DEBHELPER#
EOF
system ($temp) / 256 == 0
or die "Problème avec le script de S<debhelper :> $!";
Génération automatique des diverses
dépendances.¶
Certaines commandes de debhelper peuvent nécessiter des dépendances
entre le paquet construit et d'autres paquets. Par exemple, si
dh_installdebconf(1) est employé, le paquet devra dépendre de
debconf. Si
dh_installxfonts(1) est employé, le paquet deviendra
dépendant d'une version particulière de xutils. Maintenir ces
dépendances induites peut être pénible puisqu'elles
découlent de la façon dont debhelper travaille. C'est pourquoi
debhelper offre une solution d'automatisation.
Toutes les commandes de ce type, outre qu'elles documentent, dans leur page de
manuel, les dépendances qu'elle induisent, généreront
automatiquement une variable de substitution nommée
${misc:depends}. Si cette variable est exploitée dans le dossier
debian/control, il sera automatiquement enrichi des dépendances
induites par debhelper.
Ce processus est entièrement indépendant de
${shlibs:Depends}
standard, produite par
dh_makeshlibs(1), et de
${perl:Depends}
produite par
dh_perl(1). Il est également possible de choisir de
ne pas les utiliser si les conjectures de debhelper ne correspondent pas
à la réalité.
Répertoires de construction du paquet¶
Par défaut, tous les programmes de debhelper supposent que le
répertoire temporaire utilisé pour construire l'arborescence des
fichiers d'un paquet est debian/
paquet.
Parfois, il peut être souhaitable d'utiliser un autre répertoire
temporaire. Ceci est obtenu grâce au paramètre -P. Par exemple,
dh_installdocs -Pdebian/tmp utilisera
debian/tmp comme
répertoire temporaire. Nota : L'usage de
-P implique que les
programmes de debhelper ne construisent qu'un seul paquet à la fois. De
ce fait, si le paquet source génère plusieurs paquets binaires, il
faudra employer également le paramètre
-p pour préciser
l'unique paquet binaire à construire.
udebs¶
Debhelper prend en charge la construction des udebs. Pour créer un udeb
avec debhelper, il faut ajouter «
Package-Type: udeb » aux lignes de paquet dans
debian/control. Debhelper essayera de construire des udebs,
conformément aux règles de l'installateur Debian, en suffixant les
fichiers de paquets générés avec
.udeb, en n'installant
aucune documentation dans un udeb, en omettant les scripts
preinst,
postrm,
prerm et
config, etc.
VARIABLES D'ENVIRONNEMENT¶
- DH_VERBOSE
- Mettre cette variable à 1 valide le mode
verbeux. Debhelper affichera chaque commande exécutée qui
modifie des fichiers.
- DH_COMPAT
- Indique temporairement le niveau de compatibilité
auquel debhelper doit fonctionner. Cette valeur supplante la valeur
précisée dans debian/compat.
- DH_NO_ACT
- Mettre cette variable à 1 pour activer le mode
simulation (no-act).
- DH_OPTIONS
- Tout ce qui est indiqué dans cette variable sera
passé en argument à toutes les commandes debhelper.
En utilisant dh(1), des options peuvent être passées à
chaque commande debhelper, ce qui est généralement mieux que
d'utiliser DH_OPTIONS.
- DH_ALWAYS_EXCLUDE
- Si cette variable possède une valeur, elle sera
ajoutée à l'option -X de toutes les commandes qui
admettent cette option. De plus, dh_builddeb fera un rm -rf
quelque chose, correspondant à la valeur dans l'arbre de construction
de paquet.
Ceci peut être utile pour construire un paquet à partir d'une
arborescence CVS. Dans ce cas, le réglage de
DH_ALWAYS_EXCLUDE=CVS empêchera les répertoires CVS
d'interférer subrepticement dans le paquet en construction. Ou, si un
paquet possède une source compressée, (maladroitement)
présente dans un répertoire CVS, il peut être utile
d'exporter DH_ALWAYS_EXCLUDE=CVS dans debian/rules, pour que
cette variable soit prise en compte quel que soit l'endroit où le
paquet est construit.
Des exclusions multiples peuvent être séparées avec des
caractères deux points, comme dans
DH_ALWAYS_EXCLUDE=CVS:.svn.
VOIR AUSSI¶
- /usr/share/doc/debhelper/examples/
- Un ensemble d'exemples de fichiers debian/rules qui
utilisent debhelper.
- <http://kitenet.net/~joey/code/debhelper/>
- Le site internet de debhelper.
AUTEUR¶
Joey Hess <joeyh@debian.org>
TRADUCTION¶
Valéry Perrin <valery.perrin.debian@free.fr> le 17 septembre 2005.
Dernière mise à jour le 3 avril 2011.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité.
Cette traduction est gérée dynamiquement par po4a. Certains
paragraphes peuvent, éventuellement, apparaître en anglais. Ils
correspondent à des modifications ou des ajouts récents du
mainteneur, non encore incorporés dans la traduction française.
La version originale anglaise de ce document est toujours consultable via la
commande man -L en nom_du_man.
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le
cas, toute erreur dans cette page de manuel.