dpkg-buildpackage(1)

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 (seit Dpkg 1.17.11). Wird an dpkg-genchanges weitergegeben.

-G  Spezifiziert einen auf die Quellen und architektur-spezifische Pakete beschränkten Bau (seit Dpkg 1.17.11). 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 Quellbau, es werden keine Binärpakete erstellt. Wird an dpkg-genchanges weitergegeben. Hinweis: Falls Sie einfach das Quellpaket (neu) bauen möchten, ist die Verwendung von dpkg-source immer besser, da dafür keine Bauabhängigkeiten installiert sein müssen, um das Ziel clean aufzurufen.

-F  Spezifiziert einen normalen kompletten Bau, Binär- und Quellpakete werden gebaut (seit Dpkg 1.15.8). 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 (seit Dpkg 1.15.0). 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 (seit Dpkg 1.15.0). 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 (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.

-PProfil[,?]
    Gibt als Kommata-getrennte Liste die zu bauenden Profile an (seit Dpkg 1.17.2). 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 (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). 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 unbegrenzte Anzahl zurück.

-J[Aufträge|auto]
    Diese Option (seit Dpkg 1.18.2) 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.

-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.

--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.

-nc Bereinige den Quellbaum nicht. 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).

-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 (seit Dpkg 1.14.17). 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 (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). 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 (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.

UMGEBUNG

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 Signieren der .changes- und .dsc-Dateien verwandt (seit Dpkg 1.17.2). 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 (seit Dpkg 1.17.2). 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-2015 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).