Scroll to navigation

RPMBUILD(1) General Commands Manual RPMBUILD(1)

BEZEICHNUNG

rpmbuild - RPM-Paket(e) bauen

ÜBERSICHT

rpmbuild -bPHASE [Optionen] SPEC-DATEI

rpmbuild -rPHASE [Optionen] QUELLPAKET

rpmbuild -tPHASE [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

-bPHASE

erstellt die angegebene PHASE aus einer Spec-Datei.

-rPHASE

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

-tPHASE

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

7. November 2025 RPM 6.0.0