Rechercher une page de manuel
debhelper
Langue: fr
Version: 2009-05-18 (debian - 07/07/09)
Section: 7 (Divers)
Sommaire
- NOM
- SYNOPSIS
- DESCRIPTION
- COMMANDES DE DEBHELPER
- FICHIERS DE CONFIGURATION DE DEBHELPER
- OPTIONS PARTAGEES DE DEBHELPER
- OPTIONS COURANTES DE DEBHELPER
- REMARQUES
- Prise en charge de plusieurs paquets binaires
- Generation automatique des scripts Debian de maintenance du paquet
- Generation automatique des diverses dependances.
- Repertoires de construction du paquet
- Niveaux de compatibilite de debhelper
- Liens symboliques vers le repertoire de documentation
- udebs
- Autres remarques
- VARIABLES D'ENVIRONNEMENT
- VOIR AUSSI
- AUTEUR
- TRADUCTION
NOM
debhelper - ensemble d'outils regroupes sous le nom de debhelperSYNOPSIS
dh_* [-v] [-a] [-i] [-s] [--no-act] [-ppaquet] [-Npaquet] [-Ptmpdir]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 comprehensibles qui seront exploites dans debian/rules pour automatiser les taches courantes liees a la construction des paquets, d'ou un travail allege pour le responsable. Dans une certaine mesure, cela signifie egalement que ces outils peuvent etre adaptes aux modifications eventuelles de la Charte Debian. Les paquets qui utiliseront debhelper ne necessiteront qu'une simple reconstruction pour etre conformes aux nouvelles regles.A typical debian/rules file that uses debhelper will call several debhelper commands in sequence, or use dh(1) to automate this process. Examples of rules files that use debhelper are in /usr/share/doc/debhelper/examples/
Pour creer un nouveau paquet Debian en utilisant debhelper, il suffit de copier un des fichiers d'exemple et de le modifier manuellement. Il est possible egalement 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 complete de commandes debhelper disponibles. Consulter leurs pages de manuel respectives pour obtenir des informations complementaires.- dh_builddeb(1)
- build debian binary packages
- dh_compress(1)
- comprime les fichiers dans le repertoire de construction du paquet et modifie les liens symboliques en consequence
- dh_fixperms(1)
- ajuste les droits sur les fichiers du repertoire de construction du paquet
- dh_gconf(1)
- produit les scripts d'enregistrement du schema GConf
- dh_gencontrol(1)
- produit et installe le fichier de controle
- dh_install(1)
- installe les fichiers dans le repertoire de construction du paquet
- dh_installcatalogs(1)
- installe et inscrit les catalogues SGML
- dh_installchangelogs(1)
- installe les journaux de suivi des modifications (changelog) dans les repertoires de construction du paquet
- dh_installcron(1)
- installe les scripts cron dans etc/cron.*
- dh_installdeb(1)
- installe des fichiers dans le repertoire DEBIAN
- dh_installdebconf(1)
- installe les fichiers utilises par debconf dans les repertoires de construction du paquet
- dh_installdirs(1)
- cree des sous-repertoires dans le repertoire de construction du paquet
- dh_installdocs(1)
- installe la documentation dans le repertoire de construction du paquet
- dh_installemacsen(1)
- inscrit un paquet additionnel emacs
- dh_installexamples(1)
- installe les fichiers d'exemples dans le repertoire de construction du paquet
- dh_installinfo(1)
- installe et inscrit les fichiers info
- dh_installinit(1)
- installe les scripts d'initialisation (init scripts) dans le repertoire de construction du paquet
- dh_installlogcheck(1)
- installe les fichiers de regles de verification des journaux (logcheck rulefiles) dans etc/logcheck/
- dh_installlogrotate(1)
- installe les fichiers de configuration de la rotation des journaux (logrotate)
- dh_installman(1)
- installe les pages de manuel dans le repertoire de construction du paquet
- dh_installmanpages(1)
- ancien programme d'installation des pages de manuel
- dh_installmenu(1)
- installe les fichiers du menu Debian dans le repertoire de construction du paquet
- dh_installmime(1)
- installe les fichiers X mime X dans le repertoire de construction du paquet
- dh_installpam(1)
- installe les fichiers de support de PAM
- dh_installppp(1)
- installe les fichiers ppp.ip-up et ppp.ip-down
- dh_installwm(1)
- inscrit un gestionnaire de fenetre (window manager)
- dh_installxfonts(1)
- inscrit les polices de caracteres graphiques (X fonts)
- dh_link(1)
- cree les liens symboliques dans le repertoire de construction du paquet
- dh_listpackages(1)
- enumere les paquets binaires que debhelper va traiter
- dh_makeshlibs(1)
- automatically create shlibs file and call dpkg-gensymbols
- dh_md5sums(1)
- cree le fichier DEBIAN/md5sums
- dh_movefiles(1)
- deplace des fichiers depuis debian/tmp dans des sous-paquets
- dh_perl(1)
- calculates perl dependencies and cleans up after MakeMaker
- dh_python(1)
- determine les dependances Python et ajoute des scripts de maintenance Python postinst et prerm
- dh_scrollkeeper(1)
- produit les scripts d'enregistrement ScrollKeeper
- dh_strip(1)
- depouille les executables, les bibliotheques partagees, et certaines bibliotheques statiques
- dh_suidregister(1)
- programme obsolete d'inscription suid
- dh_testdir(1)
- verifie le repertoire avant de construire un paquet Debian
- dh_testroot(1)
- verifie que le paquet est construit par le superutilisateur (root)
- dh_testversion(1)
- verifie que la bonne version de debhelper est installee
- dh_undocumented(1)
- programme obsolete de creation de liens symboliques vers X undocumented.7 X
- dh_usrlocal(1)
- migre les repertoires usr/local dans les scripts de maintenance du paquet
Si le nom d'un programme commence par X dh_ X et qu'il n'est pas dans la liste ci-dessus, alors, c'est qu'il ne fait pas partie du paquet debhelper. Cependant, il devrait tout de meme fonctionner comme les autres programmes decrits dans cette page.
FICHIERS DE CONFIGURATION DE DEBHELPER
Beaucoup de commandes de debhelper utilisent des fichiers du repertoire 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 a configurer le comportement des commandes specifiques de debhelper. Ces fichiers sont, en principe, nommes debian/paquet.toto (ou X paquet X est, bien sur, a remplacer par le nom du paquet concerne).Par exemple, dh_installdocs utilise un fichier appele debian/package.docs pour enumerer les fichiers de documentation qu'il installera. Consulter les pages de manuel des differentes commandes pour connaitre le detail des noms et des formats des fichiers employes. D'une facon generale, ces fichiers de configuration enumerent les fichiers sur lesquels devra porter l'action, a raison d'un fichier par ligne. Quelques programmes de debhelper emploient des paires fichier/destination voire des formats legerement plus compliques.
Nota : Lorsqu'un paquet est le premier (ou le seul) paquet binaire enumere dans le fichier debian/control, debhelper exploitera debian/toto si aucun fichier debian/paquet.toto n'est present.
In some rare cases, you may want to have different versions of these files for different architectures or OSes. If files named debian/package.foo.ARCH or debian/package.foo.OS exist, where ``ARCH'' and ``OS'' are the same as the output of ``dpkg-architecture -qDEB_HOST_ARCH'' / ``dpkg-architecture -qDEB_HOST_ARCH_OS'', then they will be used in preference to other, more general files.
Dans beaucoup de cas, ces fichiers de configuration sont employes pour indiquer divers types de fichiers : documentation, fichiers d'exemples a installer, fichiers a deplacer et ainsi de suite. Lorsque cela se justifie, dans des cas comme ceux-ci, il est possible d'employer les jokers (wildcard) standard de l'interpreteur de commandes (shell) (X ? X, X * X et X [..] X).
Il est egalement possible de placer des commentaires dans ces fichiers. Les lignes debutant par X # X sont ignorees.
OPTIONS PARTAGEES DE DEBHELPER
Tous les programmes de debhelper acceptent les options suivantes :- -v, --verbose
- Mode verbeux : affiche toutes les commandes qui modifient le repertoire de construction du paquet.
- --no-act
- Empeche la construction de s'effectuer reellement. Si cette option est utilisee avec -v, le resultat sera l'affichage de ce que la commande aurait fait.
- -a, --arch
- Construit tous les paquets dependants d'une architecture.
- -i, --indep
- Construit tous les paquets independants de l'architecture.
- -ppaquet, --package=paquet
- Construit le paquet nomme X paquet X. Cette option peut etre repetee afin de faire agir debhelper sur plusieurs paquets.
- -s, --same-arch
- Il s'agit d'une version plus astucieuse de l'option -a, employee dans quelques rares cas. Grace a cette option, si le fichier de controle du paquet comporte le champ X Architecture: i386 X, debhelper ne construira pas le paquet pour d'autres architectures. De cette facon, cette option construit tous les paquets marques XArchitecture: any X ainsi que tous les paquets dont l'architecture mentionnee correspond a l'architecture courante. Ce comportement est a l'oppose de l'option -a, qui construit seulement les paquets qui ne sont pas independants de l'architecture.
- -Npaquet, --no-package=paquet
- Exclut le paquet specifie du processus de construction, meme si l'option - a, -i ou -p l'impliquait.
- --remaining-packages
- Do not act on the packages which have already been acted on by this debhelper command earlier (i.e. if the command is present in the package debhelper log). For example, if you need to call the command with special options only for a couple of binary packages, pass this option to the last call of the command to process the rest of packages with default settings.
- --ignore=file
- Ignore the specified file. This can be used if debian/ contains a debhelper config file that a debhelper command should not act on. Note that debian/compat, debian/control, and debian/changelog can't be ignored, but then, there should never be a reason to ignore those files.
For example, if upstream ships a debian/init that you don't want dh_installinit to install, use --ignore=debian/init
- -Ptmpdir, --tmpdir=tmpdir
- Utilise le repertoire X tmpdir X pour construire les paquets. Sinon, par defaut, le repertoire utilise est X debian/paquet X
- --mainpackage=paquet
- Cette option, peu utilisee, indique a debhelper le nom du paquet principal pour lequel les fichiers debian/toto peuvent etre utilises a la place des fichiers habituels debian/paquet.toto. Par defaut, debhelper considere que le paquet principal est le premier paquet enumere dans le fichier debian/control.
OPTIONS COURANTES DE DEBHELPER
Certains programmes de debhelper acceptent les options suivantes : Consulter la page de manuel de chaque programme pour une explication complete du role de ces options.- -n
- Ne pas modifier les scripts de maintenance du paquet (postinst, postrm, etc.).
- -Xelement, --exclude=element
- Permet d'exclure un element du traitement. Cette option peut etre employee plusieurs fois afin d'exclure plusieurs elements.
- -A, --all
- Precise que les fichiers (ou autres elements) indiques dans la ligne de commande concernent TOUS les paquets construits et pas seulement le premier.
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 dependant de l'architecture, et un paquet independant de l'architecture, ce comportement ne conviendra pas. En effet, il convient de construire les paquets dependants de l'architecture dans la cible binary-arch du fichier debian/rules, et les paquets independants de l'architecture dans la cible binary-indep.Pour resoudre ce probleme, et pour un meilleur controle 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 precisee, les programmes de debhelper construisent tous les paquets enumeres dans le fichier de controle.
Generation automatique des scripts Debian de maintenance du paquet
Certaines commandes de debhelper produisent automatiquement des lignes de codes de maintenance du paquet. Pour les inclure dans vos propres scripts de maintenance du paquet, il convient d'ajouter X #DEBHELPER# X a l'endroit ou les lignes de code generees devront etre inserees. X #DEBHELPER# X sera remplace, par les lignes de code generees automatiquement, lors de l'execution de dh_installdeb.Si un script de maintenance n'existe pas et que debhelper doit y inclure quelque chose, alors debhelper creera le script de maintenance completement.
Toutes les commandes de debhelper qui produisent automatiquement des lignes de code de cette facon peuvent inhiber cette production grace a l'option -n (voir ci-dessus).
Nota : Les lignes de code inserees seront ecrit dans le langage de l'interpreteur de commandes (shell). De ce fait, il est impossible de les placer directement dans un script Perl. Pour les inserer dans un script Perl, voici une solution. (S'assurer que $1, $2, etc. sont bien definis par la commande set.)
my $temp="set -e\nset -- @ARGV\n" . << 'EOF'; #DEBHELPER# EOF system ($temp) / 256 == 0 or die "Probleme avec le script de debhelper : $!";
Generation automatique des diverses dependances.
Certaines commandes de debhelper peuvent necessiter des dependances entre le paquet construit et d'autres paquets. Par exemple, si dh_installdebconf(1) est employe, le paquet devra dependre de debconf. Si dh_installxfonts(1) est employe, le paquet deviendra dependant d'une version particuliere de xutils. Maintenir ces dependances induites peut etre penible puisqu'elles decoulent de la facon 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 dependances qu'elle induisent, genereront automatiquement une variable de substitution nommee ${misc:depends}. Si cette variable est exploitee dans le dossier debian/control, il sera automatiquement enrichi des dependances induites par debhelper.
Ce processus est entierement independant de ${shlibs:Depends} standard, produite par dh_makeshlibs(1), et de ${perl:Depends} produite par dh_perl(1). Il est egalement possible de choisir de ne pas les utiliser si les conjectures de debhelper ne correspondent pas la realite.
Repertoires de construction du paquet
Par defaut, tous les programmes de debhelper supposent que le repertoire temporaire utilise pour construire l'arborescence des fichiers d'un paquet est debian/paquet.Parfois, il peut etre souhaitable d'utiliser un autre repertoire temporaire. Ceci est obtenu grace au parametre -P. Par exemple, X dh_installdocs -Pdebian/tmp X utilisera debian/tmp comme repertoire temporaire. Nota : L'usage de -P implique que les programmes de debhelper ne construisent qu'un seul paquet a la fois. De ce fait, si le paquet source genere plusieurs paquets binaires, il faudra employer egalement le parametre -p pour preciser l'unique paquet binaire a construire.
Niveaux de compatibilite de debhelper
Parfois, des modifications majeures de debhelper doivent etre faites et vont briser la compatibilite ascendante. Ces modifications sont necessaires pour conserver a debhelper ses qualites de conception et d'ecriture, car les besoins changent et le savoir-faire de l'auteur s'ameliore. Pour eviter que de tels changements ne cassent les paquets existants, un concept de niveau de compatibilite debhelper a ete introduit. On precisera a debhelper le niveau de compatibilite qu'il doit employer, et il modifiera son comportement de diverses manieres.Tell debhelper what compatibility level to use by writing a number to debian/compat. For example, to turn on V7 mode:
% echo 7 > debian/compat
Sauf indication contraire, toute la documentation de debhelper suppose l'utilisation du niveau de compatibilite le plus recent, et, dans la plupart des cas ne precise pas si le comportement est different avec les niveaux de compatibilite anterieurs. De ce fait, si le niveau de compatibilite le plus recent n'est pas celui utilise, il est fortement conseille de lire les indications ci-dessous qui exposent les differences dans les niveaux de compatibilite anterieurs.
Les niveaux de compatibilite sont les suivants :
- V1
- C'est le niveau initial de compatibilite de debhelper ainsi que la valeur par defaut. Dans ce mode, debhelper emploiera debian/tmp comme repertoire de l'arborescence du premier paquet binaire enumere dans le fichier de controle et debian/paquet pour tous les autres. Ce mode est deconseille.
Ce mode est deconseille.
- V2
- Dans ce mode, debhelper emploiera uniformement debian/paquet comme repertoire de l'arborescence de chaque paquet construit.
Ce mode est deconseille.
- 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 desactiver cette substitution et utiliser ces caracteres tels quels, il suffit de les prefixer avec une barre contre-oblique (backslash).
- -
- Les scripts de maintenance du paquet (postinst et postrm) feront appel a ldconfig quand dh_makeshlibs sera lance.
- -
- Chaque fichier de etc/ est automatiquement marque par dh_installdeb comme un fichier de configuration.
Ce mode est deconseille.
-
- V4
- Les changements par rapport a la version 3 sont :
-
- -
- dh_makeshlibs -V n'inclura pas la partie Debian du numero de version dans la ligne de dependance produite dans le fichier shlibs.
- -
- Il est fortement conseille de mettre le nouveau ${misc:Depends} dans debian/control pour completer ${shlibs:Depends}.
- -
- dh_fixperms rendra executables tous les fichiers des repertoires bin/ et etc/init.d.
- -
- dh_link corrigera les liens existants pour les rendre conformes a la Charte Debian.
Ce mode est deconseille.
-
- V5
- Changes from V4 are:
-
- -
- Les commentaires sont ignores 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'ou proviennent ces symboles.
- -
- dh_installdocs saute l'installation des fichiers vides.
- -
- dh_install genere des erreurs si les jokers (wildcards) ne correspondent a rien.
-
- V6
- Changes from V5 are:
-
- -
- Commands that generate maintainer script fragments will order the fragments in reverse order for the prerm and postrm scripts.
- -
- dh_installwm will install a slave manpage link for x-window-manager.1.gz, if it sees the man page in usr/share/man/man1 in the package build directory.
- -
- dh_builddeb did not previously delete everything matching DH_ALWAYS_EXCLUDE, if it was set to a list of things to exclude, such as ``CVS:.svn:.git''. Now it does.
- -
- dh_installman allows overwriting existing man pages in the package build directory. In previous compatibility levels it silently refuses to do this.
-
- V7
- This is the recommended mode of operation.
Changes from V6 are:
-
- -
- dh_install, will fall back to looking for files in debian/tmp if it doesn't find them in the current directory (or wherever you tell it look using --sourcedir). This allows dh_install to interoperate with dh_auto_install, which installs to debian/tmp, without needing any special parameters.
- -
- dh_clean will read debian/clean and delete files listed there.
- -
- dh_clean will delete toplevel *-stamp files.
- -
- dh_installchangelogs will guess at what file is the upstream changelog if none is specified.
-
Liens symboliques vers le repertoire de documentation
Parfois il est utile de construire un paquet qui ne contient pas de repertoire /usr/share/doc/paquet. On peut, a la place, creer un lien symbolique X en l'air X qui pointe sur un autre repertoire de documentation. La Charte Debian indique que c'est autorise si le paquet construit depend du paquet comportant la documentation. Pour obtenir ce resultat, il suffit d'omettre l'installation du repertoire de documentation dans le paquet et d'employer dh_link pour generer le lien symbolique (ou le faire manuellement). Dans ce cas debhelper devrait se comporter correctement, c'est-a-dire remarquer qu'il s'agit d'un lien symbolique X en l'air X et ne pas essayer d'installer un fichier copyright ou changelog.udebs
Debhelper prend en charge la construction des udebs. Pour creer un udeb avec debhelper, il faut ajouter X XC-Package-Type: udeb X aux lignes de paquet dans debian/control, ainsi qu'une dependance vers debhelper (>= 4.2) dans la ligne build-depend. Debhelper essayera de construire des udebs, conformement aux regles de l'installateur Debian, en suffixant les fichiers de paquets generes avec X .udeb X, en n'installant aucune documentation, en omettant les scripts preinst, postrm et prerm ainsi que les scripts de configuration, etc.Autres remarques
Generalement, si un programme de debhelper a besoin qu'un repertoire existe dans debian/, il le creera. Ce comportement n'est pas documente dans toutes les pages de manuel, mais, par exemple, le dh_installdeb sait qu'il doit creer le repertoire debian/paquet/DEBIAN/ avant de tenter de mettre des fichiers dedans. De meme, dh_installmenu sait qu'il est necessaire d'avoir un repertoire debian/paquet/usr/share/menu/ avant d'installer les fichiers menu, etc.Once your package uses debhelper to build, be sure to add debhelper to your Build-Depends line in debian/control. You should build-depend on a version of debhelper equal to (or greater than) the debhelper compatibility level your package uses. So if your package used compatibility level 7:
Build-Depends: debhelper (>= 7)
VARIABLES D'ENVIRONNEMENT
- DH_VERBOSE
- Mettre cette variable a 1 valide le mode verbeux. Debhelper affichera chaque commande executee qui modifie des fichiers.
- DH_COMPAT
- Indique temporairement le niveau de compatibilite auquel debhelper doit fonctionner. Cette valeur supplante la valeur precisee dans debian/compat.
- DH_NO_ACT
- Mettre cette variable a 1 pour activer le mode simulation (no-act).
- DH_OPTIONS
- Anything in this variable will be prepended to the command line arguments of all debhelper commands. Command-specific options will be ignored by commands that do not support them.
This is useful in some situations, for example, if you need to pass -p to all debhelper commands that will be run. One good way to set DH_OPTIONS is by using ``Target-specific Variable Values'' in your debian/rules file. See the make documentation for details on doing this.
- DH_ALWAYS_EXCLUDE
- Si cette variable possede une valeur, elle sera ajoutee a l'option -X de toutes les commandes qui admettent cette option. De plus, dh_builddeb fera un rm -rf quelque chose, correspondant a la valeur dans l'arbre de construction de paquet.
Ceci peut etre utile pour construire un paquet a partir d'une arborescence CVS. Dans ce cas le reglage de DH_ALWAYS_EXCLUDE=CVS empechera les repertoires CVS d'interferer subrepticement dans le paquet en construction. Ou, si un paquet possede une source compressee, (maladroitement) presente dans un repertoire CVS, il peut etre utile d'exporter DH_ALWAYS_EXCLUDE=CVS dans debian/rules, pour que cette variable soit prise en compte quel que soit l'endroit ou le paquet est construit.
Des exclusions multiples peuvent etre separees avec des 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
Valery Perrin <valery.perrin.debian@free.fr> le 17 septembre 2005. Derniere mise a jour le 19 novembre 2006.L'equipe de traduction a fait le maximum pour realiser une adaptation francaise de qualite
La version anglaise la plus a jour de ce document est toujours consultable via la commande man -L en nom_du_man .
N'hesitez pas a signaler a l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre