ÜBERSICHT
dpkg-buildpackage [Option …]
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 oder --no-check-builddeps
nicht angegeben ist).
- 3.
- Falls eines oder mehrere spezielle Ziele mit der Option -T oder
--target ausgewählt wurden, ruft es diese Ziele 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 oder --no-pre-clean nicht angegeben
ist).
- 4.
- Es führt den Hook source aus und ruft dpkg-source -b
auf, um das Quellpaket zu erstellen (falls mit --build oder
äquivalenten Optionen ein source (Quell-)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 --build=source oder
äquivalenten Optionen erbeten wurde). Beachten Sie, dass
Bauziel und Binärziel entweder build und
binary (Standardfall, oder falls any- und all-Bau mit
--build oder äquivalenten Optionen erbeten wurde) oder
build-arch und binary-arch (falls ein any- und nicht
all-Bau mit --build oder äquivalenten Optionen
erbeten wurde) oder build-indep und binary-indep (falls ein
all- und nicht any-Bau mit --build oder
äquivalenten Optionen erbeten wurde).
- 6.
- Es führt den Hook buildinfo aus und ruft
dpkg-genbuildinfo auf, um eine .buildinfo-Datei zu
erstellen. Viele Optionen von dpkg-buildpackage werden an
dpkg-genbuildinfo weitergeleitet.
- 7.
- Es führt die changes-Hooks aus und ruft
dpkg-genchanges auf, um eine .changes-Datei zu erstellen.
Der Name der .changes-Datei wird von der Art des Baus
abhängen und wird so spezifisch wie notwendig sein, aber nicht
mehr; für einen Bau, der any enthält, wird der Name
Quellname_Binärversion_Arch.changes
oder andernfalls für einen Bau, der all enthält, wird
der Name
Quellname_Binärversion_all.changes
oder andernfalls für einen Bau, der source enthält,
wird der Name
Quellname_Quellversion_source.changes
lauten. Viele Optionen von dpkg-buildpackage werden an
dpkg-genchanges weitergegeben.
- 8.
- Es führt den Hook postclean aus und, falls -tc oder
--post-clean angegeben ist, ruft es erneut fakeroot debian/rules
clean auf.
- 9.
- dpkg-source --after-build wird aufgerufen.
- 10.
- 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).
- 11.
- Es führt den Hook sign aus und ruft gpg2 oder
gpg auf (so lange es sich nicht um einen
»UNRELEASED«-Bau handelt oder --no-sign angegeben
wurde), um die .dsc-Datei (falls vorhanden und -us oder
--unsigned-source nicht angegeben wurde), die
.buildinfo-Datei (falls -ui, --unsigned-buildinfo,
-uc oder --unsigned-changes nicht angegeben wurden) und die
.changes-Datei (falls -uc oder --unsigned-changes
nicht angegeben wurde) zu unterschreiben.
- 12.
- Es führt den Hook done aus.
Alle langen Optionen können auf der Befehlszeile oder im
dpkg-buildpackage-System und Benutzerkonfigurationsdateien angegeben
werden. Jede Zeile in der Konfigurationsdatei ist entweder eine Option
(exakt die gleiche wie die Befehlszeilenoption nur ohne führende
Gedankenstriche) oder ein Kommentar (falls sie mit ‚#’)
beginnt).
- --build=Typ
- Spezifiziert den Bau-Typ aus einer Kommata-getrennten Liste von
Komponenten (seit Dpkg 1.18.5). Wird an dpkg-genchanges
weitergegeben.
Die erlaubten Werte sind:
- source
- Baut das Quellpaket: Hinweis: Falls Sie diesen Wert alleine verwenden und
falls Sie einfach das Quellpaket aus einem sauberen Quellbaum (neu) bauen
möchten, ist die Verwendung von dpkg-source immer die
bessere Option, da dafür keine Bauabhängigkeiten installiert
sein müssen, die ansonsten benötigt werden, um das Ziel
clean aufzurufen.
- any
- Baut das architekturspezifische Binärpaket.
- all
- Baut die architekturunabhängigen Pakete.
- binary
- Baut die architekturspezifischen und -unabhängigen
Binärpakete. Dies ist ein Alias für any,all.
- full
- Baut alles. Dies ist ein Alias für source,any,all und
identisch zum Standardfall, wenn keine Bauoptionen festgelegt werden.
- -g
- Äquivalent zu --build=source,all (seit Dpkg 1.17.11).
- -G
- Äquivalent zu --build=source,any (seit Dpkg 1.17.11).
- -b
- Äquivalent zu --build=binary oder
--build=any,all.
- -B
- Äquivalent zu --build=any.
- -A
- Äquivalent zu --build=all.
- -S
- Äquivalent zu --build=source.
- -F
- Äquivalent zu --build=full, --build=source,binary
oder --build=source,any,all (seit Dpkg 1.15.8).
- --target=Ziel[,…]
- --target
Ziel[,…]
- -T,
--rules-target=Ziel[,…]
- Ruft debian/rules Ziel einmal pro angegebenem Ziel auf,
nachdem die Bauumgebung eingerichtet wurde (außer dass
dpkg-source --before-build aufgerufen wird) und beendet den
Paketbauprozess hier (seit Dpkg 1.15.0, lange Optionen seit Dpkg 1.18.8,
Unterstützung für mehrere Ziele seit Dpkg 1.18.16). Falls
auch --as-root angegeben wurde, wird der Befehl mit root-Rechten
ausgeführt (siehe --root-command). Beachten Sie, dass
bekannte Ziele, die als Root ausgeführt werden müssen, diese
Option nicht benötigen (d.h. die Ziele clean, binary,
binary-arch und binary-indep).
- --as-root
- Ergibt nur mit --target einen Sinn (seit Dpkg 1.15.0). Erfordert,
dass das Ziel mit Root-Rechten ausgeführt wird.
- -si
- -sa
- -sd
- -vVersion
- -CÄnderungsbeschreibung
- -m,
--release-by=Betreueradresse
- -e,
--build-by=Betreueradresse
- Wird unverändert an dpkg-genchanges weitergegeben. Lesen Sie
dessen Handbuchseite.
- -a, --host-arch
Architektur
- Spezifiziert die Debian-Architektur, für die gebaut wird (lange
Option seit Dpkg 1.17.17). 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 (lange Option
seit Dpkg 1.17.17). 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 (seit Dpkg 1.17.17). Die Voreinstellung ist die
Host-Maschine.
- --target-type
GNU-Systemtyp
- Spezifiziere den GNU-Systemtyp, für den die gebauten Programme
bauen werden (seit Dpkg 1.17.17). Er kann anstelle von
--target-arch oder als Ergänzung verwandt werden, um den
Standard GNU-Systemtyp der Ziel-Debian-Architektur zu
überschreiben.
- -P,
--build-profiles=Profil[,…]
- Gibt als Kommata-getrennte Liste die zu bauenden Profile an (seit Dpkg
1.17.2, lange Optionen seit Dpkg 1.18.8). 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,
--jobs[=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 (seit Dpkg 1.17.10) oder eine unbegrenzte
Anzahl, falls Aufträge nicht angegeben ist,
äquivalent zu der Option von make(1) mit dem gleichen Namen
(seit Dpkg 1.14.7, lange Option seit Dpkg 1.18.8). Fügt sich selbst
zu der Umgebungsvariablen MAKEFLAGS hinzu, was dazu führen
sollte, dass alle folgenden Aufrufe von Make diese Option erben werden.
Damit wird dem Paket die Paralle-Einstellung aufgezwungen (und
möglicherweise dem Bausystem der Originalautoren, falls dieses Make
verwendet), unabhängig von deren Unterstützung für
paralleles Bauen. Dies kann zu Fehlern beim Bauen führen.
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. Der Wert -j setzt die Option
parallel=Aufträge oder die Option parallel in
der Umgebungsvariable DEB_BUILD_OPTIONS außer Kraft.
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 serielle Abarbeitung zurück (seit Dpkg 1.18.15).
Dies sollte aber nur auf exotischen und nicht unterstützten
Systemen passieren.
- -J,
--jobs-try[=Aufträge|auto]
- Diese Option (seit Dpkg 1.18.2, lange Option seit Dpkg 1.18.8) ist
äquivalent zu der Option -j, allerdings setzt sie die
Umgebungsvariable MAKEFLAGS nicht und ist daher sich sicherer mit
allen Paketen zu benutzen, auch denen, die nicht sicher parallel bauen.
auto ist das Standardverhalten (seit Dpkg 1.18.11).
Durch Setzen der Anzahl von Aufträgen auf 1 wird das serielle
Verhalten wiederhergestellt.
- -D,
--check-builddeps
- Prüfe Bauabhängigkeiten und -konflikte; Abbruch falls diese
nicht erfüllt sind (lange Option seit Dpkg 1.18.8). Dies ist das
Standardverhalten.
- -d,
--no-check-builddeps
- Überprüfe Bauabhängigkeiten und -konflikte nicht
(lange Option seit Dpkg 1.18.8).
- --ignore-builtin-builddeps
- Prüft die eingebauten Bauabhängigkeiten und -konflikte nicht
(seit Dpkg 1.18.2). Es gibt distributionsabhängige spezifische
implizite Abhängigkeiten, die normalerweise in der Bauumgebung
benötigt werden, die sogenannte
»Build-Essential«-Paketgruppe.
- --rules-requires-root
- Berücksichtigt das Feld Rules-Requires-Root nicht, sondern
fällt auf den alten Vorgabewert zurück (seit Dpkg
1.19.1).
- -nc,
--no-pre-clean
- Bereinige den Quellbaum vor dem Bau nicht (lange Option seit Dpkg 1.18.8).
Impliziert -b, falls ansonsten nichts aus -F, -g,
-G, -B, -A oder -S gewählt wurde.
Impliziert -d mit -S (seit Dpkg 1.18.0).
- --pre-clean
- Bereinige den Quellbaum vor dem Bau (seit Dpkg 1.18.8). Dies ist das
Standardverhalten.
- -tc,
--post-clean
- Den Quellbaum säubern (verwendet root-werde-Befehl
debian/rules clean) nachdem das Paket gebaut wurde (lange Option
seit Dpkg 1.18.8).
- --no-post-clean
- Bereinigt den Quellbaum nicht, nachdem das Paket gebaut wurde (seit Dpkg
1.19.1). Dies ist das Standardverhalten.
- -r,
--root-command=root-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 (lange Option
seit Dpkg 1.18.8). 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.
- -R,
--rules-file=rules-Datei
- Der Bau eines Debian-Pakets erfolgt gewöhnlich durch Aufruf von
debian/rules als ein Befehl mit mehreren Standardparametern (seit
Dpkg 1.14.17, lange Option seit Dpkg 1.18.8). 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-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
(seit Dpkg 1.17.6). 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 (seit Dpkg 1.17.6). 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 (seit Dpkg 1.17.6). Die Hooks werden immer
ausgeführt, selbst falls die folgende Aktion nicht
durchgeführt wird (außer beim Hook binary). Alle
Hooks werden in dem entpackten Quellverzeichnis ausgeführt.
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 buildinfo 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.
- --buildinfo-option=Opt
- Option Opt an dpkg-genbuildinfo weitergeben (seit Dpkg
1.18.11). Kann mehrfach verwandt werden.
- -p,
--sign-command=Unterschreibbefehl
- Wenn dpkg-buildpackage GPG zum Unterschreiben einer
Quellsteuerdatei (.dsc) oder einer .changes-Datei
benötigt, wird es statt gpg oder gpg2 den
Unterschreibbefehl ausführen (und dabei falls notwendig den
PATH durchsuchen) (lange Option seit Dpkg 1.18.8).
Unterschreibbefehl wird alle Argumente erhalten, die gpg
oder gpg2 erhalten hätte. Unterschreibbefehl sollte
keine Leerzeichen oder andere Metazeichen der Shell enthalten.
- -k,
--sign-key=Schlüsselkennung
- Geben Sie die Schlüsselkennung zur Signatur von Paketen an (lange
Option seit Dpkg 1.18.8).
- -us,
--unsigned-source
- Das Quellpaket nicht unterschreiben (lange Option seit Dpkg 1.18.8).
- -ui,
--unsigned-buildinfo
- Die .buildinfo-Datei nicht unterschreiben (seit Dpkg 1.18.19).
- -uc,
--unsigned-changes
- Die .changes- und die .buildinfo Datei nicht unterschreiben
(lange Option seit Dpkg 1.18.8).
- --no-sign
- Keine Datei unterschreiben, das schließt Quellpakete, die Datei
.buildinfo und die Datei .changes ein (seit Dpkg
1.18.20).
- --force-sign
- Das Unterschreiben der entstehenden Dateien erzwingen (seit Dpkg 1.17.0),
unabhängig von -us, --unsigned-source, -ui,
--unsigned-buildinfo, -uc, --unsigned-changes oder
anderen internen Heuristiken.
- -sn
- -ss
- -sA
- -sk
- -su
- -sr
- -sK
- -sU
- -sR
- -i,
--diff-ignore[=regex]
- -I,
--tar-ignore[=Muster]
- -z,
--compression-level=Stufe
- -Z,
--compression=Komprimierer
- Wird unverändert an dpkg-source weitergegeben. Lesen Sie
dessen Handbuchseite.
- --source-option=Opt
- Option Opt an dpkg-source weitergeben (seit Dpkg 1.15.6).
Kann mehrfach verwandt werden.
- --changes-option=Opt
- Option Opt an dpkg-genchanges weitergeben (seit Dpkg
1.15.6). Kann mehrfach verwandt werden.
- --admindir=Verz
- --admindir
Verz
- Ändert den Ablageort der dpkg-Datenbank (seit Dpkg 1.14.0).
Der Standardort ist /var/lib/dpkg.
- -?, --help
- Zeige den Bedienungshinweis und beende.
- --version
- Gebe die Version aus und beende sich.
- DEB_CHECK_COMMAND
- Falls gesetzt, wird er zum Prüfen der .changes-Datei
verwandt (seit Dpkg 1.17.6). Wird durch die Option --check-command
außer Kraft gesetzt.
- DEB_SIGN_KEYID
- Falls gesetzt, wird sie zum Unterschreiben der .changes- und
.dsc-Dateien verwandt (seit Dpkg 1.17.2). Wird durch die Option
--sign-key außer Kraft gesetzt.
- DEB_BUILD_OPTIONS
- Falls gesetzt, wird es eine durch Leerraumzeichen getrennte Liste von
Optionen enthalten, die den Bauprozess in debian/rules und das
Verhalten einiger Dpkg-Befehle beeinflussen könnten.
Mit nocheck wird die Variable DEB_CHECK_COMMAND
ignoriert. Mit parallel=N werden die parallelen
Aufträge auf N gesetzt, was durch die Option
--jobs-try außer Kraft gesetzt wird.
- DEB_BUILD_PROFILES
- Falls gesetzt, wird sie als aktive(s) Bau-Profil(e) für das zu
bauende Paket verwandt (seit Dpkg 1.17.2). Es ist eine durch Leerzeichen
getrennte Liste von Profilnamen. Wird durch die Option -P
außer Kraft gesetzt.
- DPKG_COLORS
- Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit unterstützten
Werte sind: auto (Vorgabe), always und never.
- DPKG_NLS
- Falls dies gesetzt ist, wird es zur Entscheidung, ob Native Language
Support, auch als Internationalisierung (oder i18n) Unterstützung
bekannt, aktiviert wird (seit Dpkg 1.19.0). Die akzeptierten Werte sind:
0 und 1 (Vorgabe).
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, da diese Datei der Haupteintrittspunkt
für den Bau von Paketen ist und es möglich sein soll, sie
unabhängig aufrufen zu können.
- DEB_BUILD_*
- DEB_HOST_*
- DEB_TARGET_*
- 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.
- DEB_RULES_REQUIRES_ROOT
- Diese Variable wird auf den Wert, der aus dem Feld
Rules-Requires-Root oder von der Befehlszeile erhalten wird,
gesetzt. Wenn gesetzt, wird er ein gültiger Wert für das
Feld Rules-Requires-Root sein. Er wird dazu verwandt,
debian/rules anzugeben, ob die Spezifikation
rootless-builds.txt unterstützt wird.
- DEB_GAIN_ROOT_CMD
- Diese Variable wird auf root-werde-Befehl gesetzt, wenn das Feld
Rules-Requires-Root auf einen von no und
binary-targets verschiedenen Wert gesetzt wird.
- SOURCE_DATE_EPOCH
- Diese Variable wird auf den Unix-Zeitstempel seit der Epoche des letzten
Eintrags in debian/changelog gesetzt, falls sie noch nicht
definiert ist.
- /etc/dpkg/buildpackage.conf
- Systemweite Konfigurationsdatei
- $XDG_CONFIG_HOME/dpkg/buildpackage.conf oder
- $HOME/.config/dpkg/buildpackage.conf
- Benutzer-Konfigurationsdatei
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.
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, (und seit Dpkg 1.18.8 falls das
Quellpaket nicht sowohl architekturabhängige wie -unabhängige
Binärpakete baut) wird es auf das Ziel build
zurückfallen, falls make -f debian/rules -qn Bauziel
den Rückgabewert 2 liefert.
Es sollte möglich sein, Leerzeichen und Metazeichen der
Shell und Anfangsargumente für root-werde-Befehl und
Unterschreibbefehl anzugeben.
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2019 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.