RPMBUILD(1) General Commands Manual RPMBUILD(1) BEZEICHNUNG rpmbuild - RPM-Paket(e) bauen UBERSICHT 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 Loschen der Archivdateien verwendet werden. Die Metadaten enthalten Hilfsskripte, Dateiattribute und beschreibende Informationen zum Paket. Die Pakete gibt es in zwei Varianten: Binarpakete, welche die zu installierende Software enthalten, und Quellpakete, welche den Quellcode und die Anweisungen zum Bauen von Binarpaketen 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 Kompatibilitats-Aliase fur -ra. Pakete werden in vier Etappen erstellt: Einlesen, Bauen, Zusammenfugen und Bereinigen. Die beiden mittleren Etappen sind weiter in die unten aufgefuhrten Phasen unterteilt, die separat erstellt werden konnen. Das Erstellen einer Phase bedeutet, dass alle vorhergehenden Phasen bis einschliesslich der angegebenen Phase ausgefuhrt werden, sofern nicht anders angegeben. Zusammenfugephasen Die Zusammenfugephasen erstellen Pakete und sind der primare Weg der Interaktion mit rpmbuild. Im Zweifelsfall wahlen Sie eine von diesen aus. a Erstellt sowohl Quell- als auch Binarpakete. 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 Binarpakete. Bei Erfolg wird das Bauverzeichnis entfernt. r baut nur das Quellpaket und wertet dabei dynamische Bauabhangigkeiten aus. Die Phasen %prep und %generate_buildrequires werden durchlaufen, bevor ein Paket erstellt wird. Im Abschnitt DYNAMISCHE BAUABHANGIGKEITEN 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 Binardateien 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 Ausfuhrung aufgefuhrt, wobei der entsprechende Spec-Datei-Abschnitt gegebenenfalls in Klammern steht. p (%prep) entpackt die Quellen und wendet eventuelle Patches an. d (%generate_buildrequires) Uberpruft dynamische Bauabhangigkeiten 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 Binardateien in >>buildroot<<. Dies beinhaltet im Allgemeinen einen Aufruf von make install und make check oder etwas Gleichbedeutendem. l fuhrt eine Listenuberprufung aus. Der %files-Abschnitt in der Spec-Datei wird Makro-expandiert und es wird uberpruft, ob jede der angegebenen Dateien existiert. Dies erfordert, dass ein vorheriger Bauvorgang bis zur %install-Phase ausgefuhrt wurde. ARGUMENTE SPEC-DATEI Eine Spec-Datei fur 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 konnen, 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 ware. Allerdings verweist %builddir/%buildsubdir zuruck auf das aktuelle Arbeitsverzeichnis. %prep wird komplett ubersprungen. --clean entfernt den Bau-Dateibaum, nachdem die Pakete gebaut wurden (Vorgabe). --nobuild fuhrt keine Bauphasen aus. Dies ist zum Testen von Spec-Dateien nutzlich. --nocheck fuhrt die %check-Phase nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist. --noclean fuhrt die %clean-Phase nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist. --nodebuginfo baut keine Debuginfo-Pakete. --nodeps uberpruft keine Bauabhangigkeiten. --noprep fuhrt 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 ausgefuhrt wurde. --rmsource entfernt die Quellen nach dem Bau (kann auch fur sich allein verwendet werden, zum Beispiel rpmbuild --rmsource foo.spec). Beachten Sie, dass per Definition NoSource- und NoPatch- Dateien keine Quellen sind und daher von dieser Option nicht beeinflusst werden. --rmspec entfernt die Spec-Datei nach dem Bau (dies kann auch fur sich allein verwendet werden, zum Beispiel rpmbuild --rmspec foo.spec). --rpmfcdebug gibt Debug-Informationen zur Dateiklassifizierung und Abhangigkeitserzeugung aus. --scm=SCM wahlt das angegebene SCM zur Verwendung mit %autosetup, falls keines in der Spec-Datei angegeben ist. Beachten Sie, dass nicht alle Werte fur 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 heisst, uberspringt alle Phasen, die zu der angegebenen Phase fuhren). Dies ist nur mit -bc, -bi und -bb zulassig. Dies ist nur fur lokale Testzwecke nutzlich. Auf diese Weise gebaute Pakete werden mit einer nicht auflosbaren Abhangigkeit versehen, um deren versehentliche Verwendung zu verhindern. --with OPTION aktiviert die Konfigurationsoption OPTION fur den Bau. --without OPTION deaktiviert die Konfigurationsoption OPTION fur den Bau. Siehe rpm-common(8) fur die Optionen, die allen Aktionen gemeinsam sind. DYNAMISCHE BAUABHANGIGKEITEN Wenn die %generate_buildrequires-Phase lauft und einige der neu erzeugten Bauabhangigkeiten nicht erfullt werden konnten, baut rpmbuild ein vorlaufiges Quellpaket, das die neuen Bauabhangigkeiten enthalt 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 Bauabhangigkeiten auf die ubliche Weise aufzulosen und zu installieren, beispielsweise mit dnf-builddep(8). In einer Spec-Datei kann es mehrere Schichten dynamischer Bauabhangigkeiten geben; das Vorhandensein einer spezifischen Bauabhangigkeit im System kann beim nachsten Bau aus dem gleichen Quellpaket neue Bauabhangigkeiten hervorbringen. Um sicherzustellen, dass alle zum Ausfuhren von rpmbuild mit der Option -br erforderlichen Bauabhangigkeiten erfullt sind, ist es der einfachste Weg, die neuen Abhangigkeiten 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 zuruckgegeben und ein buildreqs.nosrc.rpm-Paket gebaut. UMGEBUNGSVARIABLEN RPM_BUILD_NCPUS Setzt die automatische Erkennung der Anzahl der CPUs, die fur parallelisierte Abschnitte des Baus verwendet werden, ausser Kraft. EXIT-STATUS Bei Erfolg wird 0 zuruckgegeben, anderenfalls ein Fehlercode ungleich Null. Pakete mit einem Abschnitt %generate_buildrequires geben den Code 11 zuruck, wenn die DYNAMISCHEN BAUABHANGIGKEITEN nicht erfullt sind. BEISPIELE rpmbuild --rebuild hello-1.0-1.src.rpm Baut Binar- und Quellpakete aus dem Quellpaket hello-1.0-1.src.rpm. rpmbuild -bb --nocheck --with openssl hello.spec Baut Binarpakete aus der Spec-Datei hello.spec, wobei die %check-Phase (falls vorhanden) ubersprungen und die Unterstutzung fur openssl-Unterstutzung als Baubedingung aktiviert wird (in der Annahme, dass eine solche in der Spec-Datei angegeben ist). rpmbuild -ta hello-2.0.tar.gz Erstellt Binar- und Quellpakete aus dem komprimierten Tarball hello-2.0.tar.gz, vorausgesetzt, das Archiv enthalt eine gultige Spec-Datei (siehe TAR-ARCHIV fur Details). rpmbuild -bc hello.spec Baut hello.spec bis einschliesslich der %build-Phase, das heisst, ohne tatsachlich Pakete zu erstellen. rpmbuild -bi --short-circuit hello.spec fuhrt nur die %install-Phase von hello.spec aus und uberspringt alle vorherigen Phasen. Dies setzt einen vorherigen Durchlauf von mindestens bis zur %build-Phase voraus; siehe vorheriges Beispiel. Nutzlich, um vollstandige 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/ UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Mario Blattermann und Christoph Brinkhaus erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer: . RPM 6.0.1 8. Januar 2026 RPMBUILD(1)