RPMBUILD(1)

BEZEICHNUNG
rpmbuild - RPM-Paket(e) bauen

ÜBERSICHT
rpmbuild -b​PHASE [Optionen] SPEC-DATEI …

rpmbuild -r​PHASE [Optionen] QUELLPAKET …

rpmbuild -t​PHASE [Optionen] TAR-ARCHIV …

rpmbuild {--rebuild|--recompile} [Optionen] QUELLPAKET …

BESCHREIBUNG
rpmbuild wird zum Bau von Softwarepaketen im RPM-Format in einer automatisierten und nachvollziehbaren Weise verwendet.

Ein Paket besteht aus einem Dateiarchiv sowie Metadaten, die zum Installieren und Löschen der Archivdateien verwendet werden. Die Metadaten enthalten Hilfsskripte, Dateiattribute und beschreibende Informationen zum Paket.

Die Pakete gibt es in zwei Varianten: Binärpakete, welche die zu installierende Software enthalten, und Quellpakete, welche den Quellcode und die Anweisungen zum Bauen von Binärpaketen enthalten.

AKTIONEN
-b​PHASE
    erstellt die angegebene PHASE aus einer Spec-Datei.

-r​PHASE
    erstellt die angegebene PHASE aus einem Quell-RPM-Paket.

-t​PHASE
    erstellt die angegebene PHASE aus einem tar(5)-Archiv.

--rebuild, --recompile
    Kompatibilitäts-Aliase für -ra.

Pakete werden in vier Etappen erstellt: Einlesen, Bauen, Zusammenfügen und Bereinigen. Die beiden mittleren Etappen sind weiter in die unten aufgeführten Phasen unterteilt, die separat erstellt werden können. Das Erstellen einer Phase bedeutet, dass alle vorhergehenden Phasen bis einschließlich der angegebenen Phase ausgeführt werden, sofern nicht anders angegeben.

  Zusammenfügephasen
Die Zusammenfügephasen erstellen Pakete und sind der primäre Weg der Interaktion mit rpmbuild. Im Zweifelsfall wählen Sie eine von diesen aus.

a
    Erstellt sowohl Quell- als auch Binärpakete. Dies ist keine eigentliche Phase, sondern eine Kombination aus b und s, mit dem Unterschied, dass auf diese Weise erstellte Pakete ein Cookie enthalten, das anzeigt, dass sie aus demselben Bau stammen. Bei Erfolg wird das Bauverzeichnis entfernt.

b
    Erstellt nur die Binärpakete. Bei Erfolg wird das Bauverzeichnis entfernt.

r
    baut nur das Quellpaket und wertet dabei dynamische Bauabhängigkeiten aus. Die Phasen %prep und %generate_buildrequires werden durchlaufen, bevor ein Paket erstellt wird. Im Abschnitt DYNAMISCHE BAUABHÄNGIGKEITEN finden Sie weitere Details hierzu.

s
    baut nur das Quellpaket. Es werden keine Bauphasen durchlaufen.

  Bauphasen
Die Bauphasen erzeugen die zu paketierenden Artefakte, typischerweise durch Patchen und Kompilieren der Quellen und Installieren der Binärdateien im »buildroot«. Diese Phasen entsprechen im Allgemeinen Spec-Datei-Abschnitten wie %prep, %build oder %install, es gibt jedoch einige, die implizit sind.

Das separate Durchlaufen dieser Phasen ist im Allgemeinen nur beim Paketieren neuer Software im RPM-Format und/oder bei der Fehlerbehebung sinnvoll. Sie sind unten in der Reihenfolge der Ausführung aufgeführt, wobei der entsprechende Spec-Datei-Abschnitt gegebenenfalls in Klammern steht.

p (%prep)
    entpackt die Quellen und wendet eventuelle Patches an.

d (%generate_buildrequires)
    Überprüft dynamische Bauabhängigkeiten und baut das Paket buildreqs.nosrc.rpm, falls etwas fehlt. Es wird nichts anderes gebaut.

f (%conf)
    konfiguriert die Quellen. Dies beinhaltet im Allgemeinen einen Aufruf von ./configure oder etwas Gleichbedeutendem.

c (%build)
    kompiliert die Quellen. Dies beinhaltet im Allgemeinen einen Aufruf von make(1) oder etwas Gleichbedeutendem.

i (%install und %check)
    installiert die Binärdateien in »buildroot«. Dies beinhaltet im Allgemeinen einen Aufruf von make install und make check oder etwas Gleichbedeutendem.

l
    führt eine Listenüberprüfung aus. Der %files-Abschnitt in der Spec-Datei wird Makro-expandiert und es wird überprüft, ob jede der angegebenen Dateien existiert. Dies erfordert, dass ein vorheriger Bauvorgang bis zur %install-Phase ausgeführt wurde.

ARGUMENTE
SPEC-DATEI
    Eine Spec-Datei für RPM.

QUELLPAKET
    Ein RPM-Quellpaket (mit der Endung .src.rpm).

TAR-ARCHIV
    Ein tar(5)-Archiv, das optional komprimiert sein kann. Um direkt mit rpmbuild erstellt werden zu können, muss ein Archiv eine Spec-Datei entweder mit dem Namen Specfile oder mit der Endung .spec enthalten.

OPTIONEN
--build-in-place
    baut aus lokal ausgecheckten Quellen im aktuellen Arbeitsverzeichnis. Der Bau-Dateibaum ist so aufgebaut, als ob %setup verwendet worden wäre. Allerdings verweist %builddir/%buildsubdir zurück auf das aktuelle Arbeitsverzeichnis. %prep wird komplett übersprungen.

--clean
    entfernt den Bau-Dateibaum, nachdem die Pakete gebaut wurden (Vorgabe).

--nobuild
    führt keine Bauphasen aus. Dies ist zum Testen von Spec-Dateien nützlich.

--nocheck
    führt die %check-Phase nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist.

--noclean
    führt die %clean-Phase nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist.

--nodebuginfo
    baut keine Debuginfo-Pakete.

--nodeps
    überprüft keine Bauabhängigkeiten.

--noprep
    führt die Bauphase %prep nicht aus, auch wenn sie in der Spec-Datei vorhanden ist. Dies setzt voraus, dass ein anderer rpmbuild-Lauf stattgefunden hat, bei dem %prep bereits ausgeführt wurde.

--rmsource
    entfernt die Quellen nach dem Bau (kann auch für sich allein verwendet werden, zum Beispiel rpmbuild --rmsource foo.spec).

--rmspec
    entfernt die Spec-Datei nach dem Bau (dies kann auch für sich allein verwendet werden, zum Beispiel rpmbuild --rmspec foo.spec).

--rpmfcdebug
    gibt Debug-Informationen zur Dateiklassifizierung und Abhängigkeitserzeugung aus.

--scm=SCM
    wählt das angegebene SCM zur Verwendung mit %autosetup, falls keines in der Spec-Datei angegeben ist. Beachten Sie, dass nicht alle Werte für SCM, zum Beispiel patch (die Vorgabe) sowie gendiff, git oder quilt mit allen in der %autosetup-Zeile angegebenen Patches und Optionen funktionieren, insbesondere mit der Option -pN.

--short-circuit
    springt direkt zu der angegebenen Phase (das heißt, überspringt alle Phasen, die zu der angegebenen Phase führen). Dies ist nur mit -bc, -bi und -bb zulässig. Dies ist nur für lokale Testzwecke nützlich. Auf diese Weise gebaute Pakete werden mit einer nicht auflösbaren Abhängigkeit versehen, um deren versehentliche Verwendung zu verhindern.

--with OPTION
    aktiviert die Konfigurationsoption OPTION für den Bau.

--without OPTION
    deaktiviert die Konfigurationsoption OPTION für den Bau.

Siehe rpm-common(8) für die Optionen, die allen Aktionen gemeinsam sind.

DYNAMISCHE BAUABHÄNGIGKEITEN
Wenn die %generate_buildrequires-Phase läuft und einige der neu erzeugten Bauabhängigkeiten nicht erfüllt werden konnten, baut rpmbuild ein vorläufiges Quellpaket, das die neuen Bauabhängigkeiten enthält und mit buildreqs.nosrc.rpm endet, und beendet sich mit dem Code 11. Dieses Paket kann dann anstelle des originalen Quellpakets verwendet werden, um die fehlenden Bauabhängigkeiten auf die übliche Weise aufzulösen und zu installieren, beispielsweise mit dnf-builddep(8).

In einer Spec-Datei kann es mehrere Schichten dynamischer Bauabhängigkeiten geben; das Vorhandensein einer spezifischen Bauabhängigkeit im System kann beim nächsten Bau aus dem gleichen Quellpaket neue Bauabhängigkeiten hervorbringen. Um sicherzustellen, dass alle zum Ausführen von rpmbuild mit der Option -br erforderlichen Bauabhängigkeiten erfüllt sind, ist es der einfachste Weg, die neuen Abhängigkeiten des buildreqs.nosrc.rpm-Pakets zu installieren und die gesamte Prozedur so oft zu wiederholen, bis rpmbuild nicht mehr mit dem Code 11 beendet wird.

Falls die Option -br mit --nodeps gekoppelt wird, wird stets der Exit-Code 11 zurückgegeben und ein buildreqs.nosrc.rpm-Paket gebaut.

UMGEBUNGSVARIABLEN
RPM_BUILD_NCPUS
    Setzt die automatische Erkennung der Anzahl der CPUs, die für parallelisierte Abschnitte des Baus verwendet werden, außer Kraft.

EXIT-STATUS
Bei Erfolg wird 0 zurückgegeben, anderenfalls ein Fehlercode ungleich Null.

Pakete mit einem Abschnitt %generate_buildrequires geben den Code 11 zurück, wenn die DYNAMISCHEN BAUABHÄNGIGKEITEN nicht erfüllt sind.

BEISPIELE
rpmbuild --rebuild hello-1.0-1.src.rpm
    Baut Binär- und Quellpakete aus dem Quellpaket hello-1.0-1.src.rpm.

rpmbuild -bb --nocheck --with openssl hello.spec
    Baut Binärpakete aus der Spec-Datei hello.spec, wobei die %check-Phase (falls vorhanden) übersprungen und die Unterstützung für openssl-Unterstützung als Baubedingung aktiviert wird (in der Annahme, dass eine solche in der Spec-Datei angegeben ist).

rpmbuild -ta hello-2.0.tar.gz
    Erstellt Binär- und Quellpakete aus dem komprimierten Tarball hello-2.0.tar.gz, vorausgesetzt, das Archiv enthält eine gültige Spec-Datei (siehe TAR-ARCHIV für Details).

rpmbuild -bc hello.spec
    Baut hello.spec bis einschließlich der %build-Phase, das heißt, ohne tatsächlich Pakete zu erstellen.

rpmbuild -bi --short-circuit hello.spec
    führt nur die %install-Phase von hello.spec aus und überspringt alle vorherigen Phasen. Dies setzt einen vorherigen Durchlauf von mindestens bis zur %build-Phase voraus; siehe vorheriges Beispiel. Nützlich, um vollständige Neuerstellungen zu vermeiden, wenn Sie am Abschnitt %files eines Pakets arbeiten.

DATEIEN
Siehe rpm-common(8)

SIEHE AUCH
gendiff(1), popt(3), rpm(8), rpm-common(8), rpmbuild-config(5), rpm2cpio(1), rpmkeys(8), rpmspec(1), rpmsign(1), rpm-setup-autosign(1) rpm-macros(7)

http://www.rpm.org/

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com> und Christoph Brinkhaus <c.brinkhaus@t-online.de> erstellt.

Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer: debian-l10n-german@lists.debian.org.