BEZEICHNUNG¶
dpkg-buildpackage - baue Binär- oder Quellpakete aus Quellen
ÜBERSICHT¶
dpkg-buildpackage [
Option ?]
BESCHREIBUNG¶
dpkg-buildpackage ist ein Programm, das den Prozess des Bauens eines
Debian-Paketes automatisiert. Es besteht aus den folgenden Schritten:
- 1.
- Es bereitet die Bauumgebung vor, indem verschiedene Umgebungsvariablen
gesetzt werden (siehe UMGEBUNG), führt den init-Hook
aus und ruft dpkg-source --before-build auf (es sei denn, -T
oder --target wurde verwandt).
- 2.
- Es prüft, dass Bauabhängigkeiten und -konflikte
erfüllt sind (falls -d nicht angegeben ist).
- 3.
- Falls ein spezielles Ziel mit der Option -T oder --target
ausgewählt wurde, ruft es dieses Ziel auf und endet hier.
Andernfalls führt es den Hook preclean aus und ruft
fakeroot debian/ rules clean auf, um den Bau-Baum zu bereinigen
(falls -nc nicht angegeben ist).
- 4.
- Es führt den Hook source aus und ruft dpkg-source -b
auf, um das Quellpaket zu erstellen (falls nicht mit -b, -B
oder -A ein rein-binärer Bau erbeten wurde).
- 5.
- Es führt den Hook build aus und ruft debian/rules
Bauziel auf. Dann führt es den Hook binary aus,
gefolgt von fakeroot debian/rules Binärziel auf
(falls nicht ein reiner Quellbau mit -S erbeten wurde). Beachten
Sie, dass Bauziel und Binärziel entweder build
und binary (Standardfall, oder falls -b angegeben ist) oder
build-arch und binary-arch (falls -B oder -G
angegeben ist) oder build-indep und binary-indep (falls
-A oder -g angegeben ist) lauten.
- 6.
- Es führt den Hook changes aus und ruft
dpkg-genchanges auf, um eine .changes-Datei zu erstellen.
Viele Optionen von dpkg-buildpackage werden an
dpkg-genchanges weitergeleitet.
- 7.
- Es führt den Hook postclean aus und, falls -tc
angegeben ist, ruft erneut fakeroot debian/rules clean auf.
- 8.
- dpkg-source --after-build wird aufgerufen.
- 9.
- Es führt den Hook check aus und ruft einen
Paketprüfer für die Datei .changes auf (falls ein
Befehl in DEB_CHECK_COMMAND oder mit --check-command
angegeben ist).
- 10.
- Es führt den Hook sign aus und ruft gpg2 oder
gpg auf, um die .dsc-Datei (falls vorhanden und -us
nicht angegeben wurde oder es sich um einen »UNRELEASED«-Bau
handelt) und die .changes-Datei (falls vorhanden und -uc
nicht angegeben wurde oder es sich um einen »UNRELEASED«-Bau
handelt) zu signieren.
- 11.
- Es führt den Hook done aus.
OPTIONEN¶
- -g
- Spezifiziert einen auf die Quellen und architekturunabhängige
Pakete beschränkten Bau. Wird an dpkg-genchanges
weitergegeben.
- -G
- Spezifiziert einen auf die Quellen und architektur-spezifische Pakete
beschränkten Bau. Wird an dpkg-genchanges
weitergegeben.
- -b
- Spezifiziert einen rein binären Bau, keine Quelldateien sollen
gebaut und/oder vertrieben (im Sinne von verteilen) werden. Wird an
dpkg-genchanges weitergegeben.
- -B
- Spezifiziert einen rein binären Bau, beschränkt auf
architekturabhängige Pakete. Wird an dpkg-genchanges
weitergegeben.
- -A
- Spezifiziert einen rein binären Bau, beschränkt auf
architekturunabhängige Pakete. Wird an dpkg-genchanges
weitergegeben.
- -S
- Spezifiziert einen reinen Bau der Quellen, keine Binärpakete
müssen erstellt werden. Wird an dpkg-genchanges
weitergegeben.
- -F
- Spezifiziert einen normalen kompletten Bau, Binär- und Quellpakete
werden gebaut. Dies ist identisch zum Standardfall, wenn keine Bauoption
spezifiziert wird.
- --target=Ziel
- --target Ziel -TZiel Ruft debian/rules
Ziel auf, nachdem die Bauumgebung eingerichtet wurde und beendet
den Paketbauprozess hier. Falls auch --as-root angegeben wurde,
wird der Befehl mit root-Rechten ausgeführt (siehe -r).
Beachten Sie, dass offizielle Ziele, bei denen die Debian-Richtlinien
verlangen, dass Sie mit root-Rechten ausgeführt werden, diese
Option nicht benötigen.
- --as-root
- Ergibt nur mit --target einen Sinn. Erfordert, dass das Ziel mit
Root-Rechten ausgeführt wird.
- -si
- -sa -sd -vVersion
-CÄnderungsbeschreibung
-mBetreueradresse -eBetreueradresse Wird
unverändert an dpkg-genchanges weitergegeben. Lesen Sie
dessen Handbuchseite.
- -a, --host-arch Architektur
- Spezifiziert die Debian-Architektur, für die gebaut wird. Die
Architektur der Maschine, auf der gebaut wird, wird automatisch bestimmt,
und ist auch die Voreinstellung für die Gastgebermaschine
(»host machine«).
- -t, --host-type GNU-Systemtyp
- Spezifiziere den GNU-Systemtyp, für den wir bauen. Er kann anstelle
von --host-arch oder als Ergänzung verwandt werden, um den Standard
GNU-Systemtyp der Host-Debian-Architektur außer Kraft zu
setzen.
- --target-arch Architektur
- Spezifiziert die Debian-Architektur, für die die gebauten Programme
bauen werden. Die Voreinstellung ist die Host-Maschine.
- --target-type GNU-Systemtyp
- Spezifiziere den GNU-Systemtyp, für den die gebauten Programme
bauen werden. Er kann anstelle von --target-arch oder als Ergänzung
verwandt werden, um den Standard GNU-Systemtyp der Ziel-Debian-Architektur
zu überschreiben.
- -PProfil[,?]
- Gibt als Kommata-getrennte Liste die zu bauenden Profile an.
Standardmäßig wird für kein bestimmtes Profil gebaut.
Setzt sie auch (als durch Leerzeichen getrennte Liste) in die
Umgebungsvariable DEB_BUILD_PROFILES. Dies erlaubt beispielsweise
debian/rules-Dateien, diese Information für den Bau unter
bestimmten Bedingungen zu nutzen.
- -j[Aufträge|auto]
- Anzahl an Aufträgen, die simultan laufen dürfen, Anzahl von
Aufträgen, die zur Anzahl der verfügbaren Prozessoren passt,
falls auto angegeben ist oder eine unbegrenzte Anzahl, falls
Aufträge nicht angegeben ist, äquivalent zu der
Option von make(1) mit dem gleichen Namen. Fügt sich selbst
zu der Umgebungsvariablen MAKEFLAGS hinzu, was dazu führen
sollte, dass alle folgenden Aufrufe von make diese Option erben werden.
Fügt auch parallel=Aufträge oder
parallel= zu der Umgebungsvariablen DEB_BUILD_OPTIONS hinzu,
was es debian/rules-Dateien erlaubt, diese Information für eigene
Zwecke zu verwenden. Die Option parallel=Aufträge
oder parallel= in der Umgebungsvariablen DEB_BUILD_OPTIONS
überschreibt den Wert von -j, falls diese Option angegeben
ist. Beachten Sie, dass der Wert auto durch die tatsächliche
Anzahl der derzeitig aktiven Prozessoren ersetzt wird und somit nicht an
irgendeinen Kindprozess weitergegeben wird. Falls die Anzahl der
verfügbaren Prozessoren nicht ermittelt werden kann, fällt
der Code auf eine unbegrenzte Anzahl zurück.
- -D
- Prüfe Bauabhängigkeiten und -konflikte; Abbruch falls diese
nicht erfüllt sind. Dies ist das Standardverhalten.
- -d
- Überprüfe Bauabhängigkeiten und -konflikte
nicht.
- -nc
- Bereinige den Quellbaum nicht (impliziert -b, falls ansonsten
nichts aus -F, -g, -G, -B, -A oder
-S gewählt wurde).
- -tc
- Den Quellbaum säubern (verwendet root-werde-Befehl
debian/rules clean) nachdem das Paket gebaut wurde.
- -rroot-werde-Befehl
- Wenn dpkg-buildpackage einen Teil des Bauprozesses als Root
ausführen muss, stellt es dem auszführenden Befehl den
root-werde-Befehl voran, falls dieser angegeben wurde. Andernfalls
wird standardmäßig fakeroot verwendet, falls es
vorhanden ist. Der root-werde-Befehl sollte der Name des Programmes
im PATH sein und wird als Argumente den Namen des wirklich
auszuführenden Befehles und dessen Argumente erhalten.
root-werde-Befehl kann Parameter enthalten (die durch Leerzeichen
voneinander getrennt sein müssen), aber keine Shell-Metazeichen.
Typischerweise ist der root-werde-Befehl fakeroot,
sudo, super oder really. su ist nicht
geeignet, da es nur die Shell des Benutzers mit -c aufrufen kann,
anstatt Argumente individuell zur Ausführung des Programms zu
übergeben.
- -Rrules-Datei
- Der Bau eines Debian-Pakets erfolgt gewöhnlich durch Aufruf von
debian/rules als ein Befehl mit mehreren Standardparametern. Mit
dieser Option ist es möglich, einen anderen Programmaufruf zum Bau
des Paketes zu verwenden (es können durch Leerzeichen getrennte
Parameter angegeben werden). Alternativ kann die
Standard-debian/rules-Datei mit einem anderen Make-Programm
ausgeführt werden (zum Beispiel durch die Verwendung von
/usr/local/bin/make -f debian/rules als rules-Datei).
- --check-command=Prüfbefehl
- Befehl, der zum Prüfen der .changes-Datei selbst und
sämtlichen in der Datei referenzierten Artefakten verwandt wird.
Der Befehl sollte den Pfadnamen der .changes als Argument erhalten.
Dieser Befehl ist normalerweise lintian.
- --check-option=Opt
- Option Opt an den Prüfbefehl, der mit
DEB_CHECK_COMMAND oder --check-command spezifiziert wurde,
übergeben. Kann mehrfach verwandt werden.
- --hook-Hook-Name=Hook-Befehl
- Setzt den angegebenen Shell-Code Hook-Befehl als den Hook
Hook-Name, der an den Zeitpunkten läuft, die in den
Ablaufschritten angegeben sind. Die Hooks werden immer ausgeführt,
selbst falls die folgende Aktion nicht durchgeführt wird
(außer beim Hook binary).
Hinweis: Hooks können den Bauprozess beeinflussen und zu Baufehlern
führen, falls ihre Befehle fehlschlagen. Passen Sie daher auf
ungeplante Konsequenzen auf.
Die derzeit unterstützten Hook-Namen sind:
init preclean source build binary changes postclean check sign done
Der Hook-Befehl unterstützt die folgende
Ersetzungsformatzeichenkette, die vor seiner Ausführung angewandt
wird:
- %%
- Ein einzelnes %-Zeichen.
- %a
- Ein logischer Wert (0 oder 1), der darstellt, ob die folgende Aktion
ausgeführt wird oder nicht.
- %p
- Der Quellpaketname.
- %v
- Die Quellpaket-Version.
- %s
- Die Quellpaket-Version (ohne die Epoche).
- %u
- Die Original- (Upstream-)Version.
- -psignier-Befehl
- Wenn dpkg-buildpackage GPG zum Signieren einer Quellsteuerdatei
(.dsc) oder einer .changes-Datei benötigt, wird es
statt gpg oder gpg2 den signier-Befehl
ausführen (und dabei falls notwendig den PATH durchsuchen).
signier-Befehl wird alle Argumente erhalten, die gpg oder
gpg2 erhalten hätte. signier-Befehl sollte keine
Leerzeichen oder andere Metazeichen der Shell enthalten.
- -kSchlüssel-id
- Geben Sie die Schlüssel-ID zur Signatur von Paketen an.
- -us
- Das Quellpaket nicht signieren.
- -uc
- Die .changes-Datei nicht signieren.
- --force-sign
- Das Unterschreiben der entstehenden Dateien erzwingen (seit Dpkg 1.17.0),
unabhängig von -us oder -uc oder anderen internen
Heuristiken.
- -i[RegAus]
- -I[Muster] -s[nsAkurKUR] -z, -Z
Wird unverändert an dpkg-source weitergegeben. Lesen Sie
dessen Handbuchseite.
- --source-option=Opt
- Option Opt an dpkg-source weitergeben. Kann mehrfach
verwandt werden.
- --changes-option=Opt
- Option Opt an dpkg-genchanges weitergeben. Kann mehrfach
verwandt werden.
- --admindir=Verz
- --admindir Verz Ändert den Ablageort der
dpkg-Datenbank. Der Standardort ist /var/lib/dpkg.
- -?, --help
- Zeige den Bedienungshinweis und beende.
- --version
- Gebe die Version aus und beende sich.
UMGEBUNG¶
- DEB_CHECK_COMMAND
- Falls gesetzt, wird er zum Prüfen der .changes-Datei
verwandt. Wird durch die Option --check-command außer Kraft
gesetzt.
- DEB_SIGN_KEYID
- Falls gesetzt, wird sie zum Signieren der .changes- und
.dsc-Dateien verwandt. Wird durch die Option -k außer
Kraft gesetzt.
- DEB_BUILD_OPTIONS
- Falls gesetzt und falls sie nocheck enthält, wird die
Variable DEB_CHECK_COMMAND ignoriert.
- DEB_BUILD_PROFILES
- Falls gesetzt, wird sie als aktive(s) Bau-Profil(e) für das zu
bauende Paket verwandt. Es ist eine durch Leerzeichen getrennte Liste von
Profilnamen. Wird durch die Option -P außer Kraft gesetzt.
Vertrauen auf exportierte Umgebungsvariablen¶
Selbst falls
dpkg-buildpackage einige Variablen exportiert, sollte
debian/rules sich nicht auf ihre Gegenwart verlassen, sondern
stattdessen die entsprechende Schnittstelle verwenden, um die
benötigten Werte abzufragen.
Von dpkg-architecture gesetzte Variablen¶
Beim Aufruf von
dpkg-architecture werden die Parameter von
-a und
-t durchgereicht. Jede Variable, die von seiner Option
-s
ausgegeben wird, wird in die Bauumgebung integriert.
BEMERKUNGEN¶
Kompilierschalter werden nicht mehr exportiert¶
Zwischen Dpkg 1.14.17 and 1.16.1 exportierte
dpkg-buildpackage
Kompilierschalter (
CFLAGS,
CXXFLAGS,
FFLAGS,
CPPFLAGS und
LDFLAGS) mit Werten, die von
dpkg-buildflags
geliefert wurden. Dies ist nicht mehr der Fall.
Standard Bauziele¶
dpkg-buildpackage verwendet seit Dpkg 1.16.2 die Ziele
build-arch
und
build-indep. Diese Ziele sind daher verpflichtend. Um aber
Baufehler bei existierenden Paketen zu vermeiden und um den Übergang zu
erleichtern, wird es auf das Ziel
build zurückfallen, falls
make -f debian/rules -qn Bauziel den Rückgabewert 2
liefert.
FEHLER¶
Es sollte möglich sein, Leerzeichen und Metazeichen der Shell und
Anfangsargumente für
root-werde-Befehl und
signier-Befehl
anzugeben.
ÜBERSETZUNG¶
Die deutsche Übersetzung wurde 2004, 2006-2016 von Helge Kreutzmann
<debian@helgefjell.de>, 2007 von Florian Rehnisch <eixman@gmx.de>
und 2008 von Sven Joachim <svenjoac@gmx.de> angefertigt. Diese
Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE
HAFTUNG.
SIEHE AUCH¶
dpkg-source(1),
dpkg-architecture(1),
dpkg-buildflags(1),
dpkg-genchanges(1),
fakeroot(1),
lintian(1),
gpg2(1),
gpg(1).