Provided by: debhelper_9.20160115ubuntu3_all 

NAME
dh - Debhelper-Befehls-Sequenzer
ÜBERSICHT
dh Sequenz [--with Add-on[,Add-on …]] [--list] [Debhelper-Optionen]
BESCHREIBUNG
dh führt eine Sequenz von Debhelper-Befehlen aus. Die unterstützten Sequenzen entsprechen den Zielen
einer debian/rules-Datei: build-arch, build-indep, build, clean, install-indep, install-arch, install,
binary-arch, binary-indep und binary.
ZIELE AUßER KRAFT SETZEN
Eine debian/rules-Datei, die dh benutzt, kann einen Befehl aus jeder Sequenz, die ausgeführt wird, außer
Kraft setzen, indem ein außer Kraft setzendes Ziel definiert wird.
Um dh_Befehl außer Kraft zu setzen, fügen Sie der Datei »rules« ein Ziel mit Namen override_dh_Befehl
hinzu. Wenn es normalerweise dh_Befehl ausführen würde, wird dh stattdessen dieses Ziel aufrufen. Das
außer Kraft setzende Ziel kann dann den Befehl mit zusätzlichen Optionen oder stattdessen ganz andere
Befehle ausführen. Lesen Sie die folgenden Beispiele.
Außer Kraft setzende Ziele können außerdem definiert werden, um nur ausgeführt zu werden, wenn
architekturab- oder -unabhängige Pakete gebaut werden. Benutzen Sie Ziele mit Namen wie
override_dh_Befehl-arch und override_dh_Befehl-indep. Beachten Sie, dass Sie, um diese Funktion verwenden
zu können, Build-Depend auf Debhelper 8.9.7 oder höher haben sollten.
OPTIONEN
--with Add-on[,Add-on …]
fügt die Debhelper-Befehle, die durch das gegebene Add-on angegeben wurden, an geeigneten Stellen der
Befehlssequenz, die ausgeführt wird, hinzu. Diese Option kann mehr als einmal wiederholt werden oder
es können mehrere Add-ons durch Kommas getrennt aufgeführt werden. Dies wird benutzt, wenn es ein
Fremdpaket gibt, das Debhelper-Befehle bereitstellt. Dokumentation über die Sequenz-Add-on-
Schnittstelle finden Sie in der Datei PROGRAMMING.
--without Add-on
das Gegenteil von --with, deaktiviert die Benutzung des angegebenen Add-ons. Diese Option kann
mehrfach wiederholt werden oder es können mehrere Add-ons zum Deaktivieren durch Kommas getrennt
aufgelistet werden.
--list, -l
listet alle verfügbaren Add-ons auf.
--no-act
gibt Befehle aus, die für eine angegebene Sequenz ausgeführt würden, führt sie aber nicht aus
Beachten Sie, dass dh normalerweise die Ausführung von Befehlen, von denen es weiß, dass sie nichts
tun, überspringt. Mit »--no-act« wird die vollständige Liste der Befehle der Reihe nach ausgegeben.
Andere an dh übergebene Optionen werden an jeden Befehl, den es ausführt, weitergereicht. Dies kann
benutzt werden, um eine Option wie -v, -X oder -N sowie spezialisiertere Optionen zu setzen.
BEISPIELE
Um zu sehen, welche Befehle in einer Sequenz enthalten sind, ohne tatsächlich etwas zu tun, geben Sie
Folgendes ein:
dh binary-arch --no-act
Dies ist eine einfach »rules«-Datei für Pakete, bei denen die vorgegebenen Befehlssequenzen ohne
zusätzliche Optionen arbeiten.
#!/usr/bin/make -f
%:
dh $@
Oft möchten Sie eine Option an einen speziellen Debhelper-Befehl übergeben. Der einfachste Weg, dies zu
tun, besteht darin, ein außer Kraft setzendes Ziel für diesen Befehl hinzuzufügen.
#!/usr/bin/make -f
%:
dh $@
override_dh_strip:
dh_strip -Xfoo
override_dh_auto_configure:
dh_auto_configure -- --with-foo --disable-bar
Manchmal können die automatisierten dh_auto_configure(1) und dh_auto_build(1) nicht abschätzen, was für
ein merkwürdiges Paket zu tun ist. Hier nun, wie das Ausführen vermieden und stattdessen Ihre eigenen
Befehle ausgeführt werden.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
./mondoconfig
override_dh_auto_build:
make universe-explode-in-delight
Ein weiterer häufiger Fall ist, dass Sie vor oder nach der Ausführung eines besonderen Debhelper-Befehls
manuell etwas tun möchten.
#!/usr/bin/make -f
%:
dh $@
override_dh_fixperms:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
Falls Ihr Paket Autotools benutzt und Sie config.sub und config.guess mit neueren Versionen vom Paket
autotools-dev zur Bauzeit auffrischen möchten, können Sie einige von autotools-dev bereitgestellten
Befehle verwenden, die es wie folgt automatisieren.
#!/usr/bin/make -f
%:
dh $@ --with autotools_dev
Python-Werkzeuge werden aufgrund ständiger Änderungen in diesem Bereich nicht standardmäßig von dh
ausgeführt. (Vor Kompatibilitätsstufe v9 führt dh dh_pysupport aus.) Hier wird gezeigt, wie dh_python2
benutzt wird.
#!/usr/bin/make -f
%:
dh $@ --with python2
Hier wird gezeigt, wie die Benutzung von Perls Bausystem Module::Build erzwungen wird, was nötig sein
kann, falls Debhelper fälschlicherweise entdeckt, dass das Programm MakeMaker verwendet.
#!/usr/bin/make -f
%:
dh $@ --buildsystem=perl_build
Hier ein Beispiel für das außer Kraft setzen, wobei die dh_auto_*-Befehle den Paketquelltext für ein
Paket finden, bei dem der Quelltext in einem Unterverzeichnis liegt.
#!/usr/bin/make -f
%:
dh $@ --sourcedirectory=src
Und hier ist ein Beispiel, wie dh_auto_*-Befehlen mitgeteilt wird, dass in einem Unterverzeichnis gebaut
wird, das mit clean entfernt wird.
#!/usr/bin/make -f
%:
dh $@ --builddirectory=build
Falls Ihr Paket parallel gebaut werden kann, benutzen Sie bitte entweder Kompatibilitätsmodus 10 oder
übergeben Sie --parallel an Dh. Dann wird dpkg-buildpackage -j funktionieren.
#!/usr/bin/make -f
%:
dh $@ --parallel
Falls Ihr Paket nicht verlässlich unter Verwendung mehrerer Threads gebaut werden kann, übergeben Sie
bitte --no-parallel an Dh (oder den zuständigen dh_auto_*-Befehl):
#!/usr/bin/make -f
%:
dh $@ --no-parallel
Es folgt eine Möglichkeit, die Ausführung mehrerer Befehle, die Sie nicht ausführen möchten, durch dh zu
verhindern, indem Sie leere, außer Kraft setzende Ziele für jeden Befehl definieren.
#!/usr/bin/make -f
%:
dh $@
# nicht auszuführende Befehle:
override_dh_auto_test override_dh_compress override_dh_fixperms:
Ein langer Bauprozess für ein separates Dokumentationspaket kann durch Benutzung von
architekturabhängigem außer Kraft setzen abgetrennt werden. Dies wird übersprungen, wenn »build-arch«-
und »binary-arch«-Sequenzen ausgeführt werden.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build-indep:
$(MAKE) -C docs
# Keine Tests für Dokumente nötig
override_dh_auto_test-indep:
override_dh_auto_install-indep:
$(MAKE) -C docs install
Angenommen, Sie möchten zusätzlich zum vorhergehenden Beispiel Dateimodusbits einer Datei ändern, aber
nur, wenn Sie ein architekturabhängiges Paket bauen, da es beim Bauen der Dokumentation nicht vorhanden
ist.
override_dh_fixperms-arch:
dh_fixperms
chmod 4755 debian/foo/usr/bin/foo
INTERNA
Falls Sie neugierig auf die Interna von dh sind, ist hier beschrieben, wie es unter der Haube arbeitet.
Jeder Debhelper-Befehl wird in debian/package.debhelper.log aufgezeichnet, wenn er erfolgreich ausgeführt
wurde. (Was durch dh_clean gelöscht wird.) Daher kann dh sagen, welche Befehle bereits für welche Pakete
ausgeführt wurden und die erneute Ausführung dieser Befehl überspringen.
Jedesmal, wenn dh ausgeführt wird, untersucht es das Protokoll und findet den zuletzt protokollierten
Befehl, der in der angegebenen Sequenz ist. Es fährt mit dem nächsten Befehl in der Sequenz fort. Die
Optionen --until, --before, --after und --remaining setzten dieses Verhalten außer Kraft.
Eine Sequenz kann außerdem abhänge Ziele in debian/rules ausführen. Die Sequenz »binary« führt zum
Beispiel das Ziel »install« aus.
dh benutzt die Umgebungsvariable DH_INTERNAL_OPTIONS, um Informationen an die Debhelper-Befehle
durchzureichen, die innerhalb der Ziele ausgeführt werden. Der Inhalt (und die tatsächliche Existenz)
dieser Umgebungsvariable ist, wie der Name schon andeutet, Gegenstand dauernder Änderungen.
Befehle in den Sequenzen build-indep, install-indep und binary-indep werden an die Option -i übergeben,
um sicherzustellen, dass sie nur auf architekturunabhängigen Paketen funktionieren. Befehle in den
Sequenzen build-arch, install-arch und binary-arch werden an die Option -a übergeben, um sicherzustellen,
dass sie nur auf architekturabhängigen Paketen funktionieren.
MISSBILLIGTE OPTIONEN
The following options are deprecated. It's much better to use override targets instead. They are not
available in compat 10.
--until Befehl
führt Befehle in der Sequenz bis einschließlich Befehl aus und stoppt dann.
--before Befehl
führt Befehle in der Sequenz vor Befehl aus und stoppt dann.
--after Befehl
führt Befehle in der Sequenz aus, die nach Befehl kommen.
--remaining
führt alle Befehle in der Sequenz aus, die noch auszuführen sind.
In den vorhergehenden Optionen kann Befehl ein vollständiger Name eines Debhelper-Befehls oder eine
Teilzeichenkette sein. Es wird zuerst nach einem Befehl in der Sequenz gesucht, die exakt dem Namen
entspricht, um jede Mehrdeutigkeit zu vermeiden. Falls mehrere Teilzeichenketten passen, wird der letzte
in der Sequenz benutzt.
SIEHE AUCH
debhelper(7)
Dieses Programm ist Teil von Debhelper.
ÜBERSETZUNG
Diese Übersetzung wurde mit dem Werkzeug po4a <http://po4a.alioth.debian.org/> durch Chris Leick
c.leick@vollbio.de und das deutsche Debian-Übersetzer-Team im Dezember 2011 erstellt.
Bitte melden Sie alle Fehler in der Übersetzung an debian-l10n-german@lists.debian.org oder als
Fehlerbericht an das Paket debhelper.
Sie können mit dem folgenden Befehl das englische Original anzeigen man -L en Abschnitt Handbuchseite
AUTOR
Joey Hess <joeyh@debian.org>
9.20160115ubuntu3 2016-03-31 DH(1)