RPMBUILD(8) RPMBUILD(8) BEZEICHNUNG rpmbuild - RPM-Paket(e) bauen UBERSICHT PAKETE BAUEN rpmbuild {-ba|-bb|-bp|-bf|-bc|-bi|-bl|-bs|-br|-bd} [rpmbuild-options] SPECDATEI rpmbuild {-ra|-rb|-rp|-rf|-rc|-ri|-rl|-rs|-rr|-rd} [rpmbuild-options] QUELLPAKET rpmbuild {-ta|-tb|-tp|-tf|-tc|-ti|-tl|-ts|-tr|-td} [rpmbuild-options] TARBALL rpmbuild {--rebuild|--recompile} QUELLPAKET SONSTIGES: rpmbuild --showrc Rpmbuild-Optionen [--buildroot VERZEICHNIS] [--clean] [--nobuild] [--rmsource] [--rmspec] [--short-circuit] [--build-in-place] [--noprep] [--noclean] [--nocheck] [--rpmfcdebug] [--target PLATTFORM] [--with OPTION] [--without OPTION] BESCHREIBUNG rpmbuild wird zum Bau von sowohl Binar- als auch Quell-Softwarepaketen 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. Einer der folgenden grundlegenden Modi muss ausgewahlt werden: Paket bauen, Paket aus einem Tarball bauen, Paket erneut kompilieren, Konfiguration anzeigen. ALLGEMEINE OPTIONEN Diese Optionen konnen in allen der verschiedenen Modi verwendet werden. -?, --help gibt eine langere Hilfemeldung als sonst aus. --version gibt eine einzelne Zeile aus, welche die Versionsummer von rpm angibt. --quiet gibt so wenig wie moglich aus - es werden normalerweise nur Fehlermeldungen angezeigt. -v gibt ausfuhrliche Informationen aus - normale Routine-Fortschrittsmeldungen werden angezeigt. -vv gibt umfangreiche Debugging-Informationen aus. --rpmfcdebug aktiviert das Debugging der Erzeugung der Abhangigkeiten. --rcfile DATEILISTE lasst rpm die Dateien in der durch Doppelpunkte getrennten DATEILISTE nacheinander einlesen, um Konfigurationsinformationen zu erhalten. Nur die erste Datei in der Liste muss existieren; die Tilde wird dabei zum Wert der Umgebungsvariable $HOME expandiert. Die vorgegebene DATEILISTE ist/usr/lib/rpm/rpmrc:/usr/lib/rpm//rpmrc:/etc/rpmrc:~/.rpmrc. --pipe BEFEHL leitet die Ausgabe des Befehls rpm an den angegebenen BEFEHL weiter. --dbpath VERZEICHNIS verwendet die im VERZEICHNIS angegebene Datenbank anstelle des vorgegebenen Pfads /var/lib/rpm. --root VERZEICHNIS verwendet das Dateisystem in der durch das VERZEICHNIS angegebenen Wurzel fur alle Aktionen. Beachten Sie, dass dies bedeutet, dass die Datenbank in diesem VERZEICHNIS fur Abhangigkeitsuberprufungen verwendet wird und Scriptlets (zum Beispiel %post zum Installieren oder %prep zum Erstellen eines Pakets) nach einem Wechsel in das angegebene VERZEICHNIS mit chroot(2) ausgefuhrt werden. -D, --define='MAKRO AUSDRUCK' definiert ein MAKRO mit dem angegebenen AUSDRUCK. --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. BAUOPTIONEN Die allgemeine Form eines Baubefehls fur rpm lautet: rpmbuild {-bPHASE|-rPHASE|-tPHASE} [rpmbuild-options] DATEI Das verwendete Argument ist -b, falls eine Spec-Datei zum Bau des Pakets eingesetzt wird, -r, wenn ein Quellpaket erneut gebaut werden soll und -t, falls rpmbuild in einer (gegebenenfalls komprimierten) Tar-Datei nach der zu verwendenden Spec-Datei suchen soll. Pakete werden in einer Reihe von Phasen gebaut. Die ersten sechs entsprechen den folgenden Abschnitten in einer Spec-Datei: %prep, %generate_buildrequires, %build, %install, %check und %clean. Zuletzt werden Binar- und Quellpakete in der Zusammenbauphase gebaut. Das PHASE-Zeichen gibt die Phase an, mit der der Vorgang beendet werden soll (nachdem alle ihr vorausgehenden Phasen durchlaufen wurden). Es ist eines aus den folgenden Zeichen: -ba fuhrt einen vollstandigen Bauvorgang aus - bis einschliesslich der Zusammenbauphase. In den meisten Fallen ist dies die zu wahlende Option. -bb baut nur das Binarpaket - fuhrt alles bis einschliesslich der Zusammenbauphase aus, aber ohne das Quellpaket zu erstellen. Bei Erfolg wird das Bauverzeichnis entfernt (wie mit --clean). -bp entpackt die Quellen und wendet eventuelle Patches an - nur die %prep-Phase wird durchlaufen. -bf konfiguriert die Quellen - fuhrt alles bis einschliesslich der Konfigurationsphase aus. Dies beinhaltet im Allgemeinen einen Aufruf von ./configure oder etwas Gleichbedeutendem. -bc kompiliert die Quellen - fuhrt alles bis einschliesslich der %build-Phase aus. Dies beinhaltet im Allgemeinen einen Aufruf von make oder etwas Gleichbedeutendem. -bi installiert die Binardateien in BuildRoot - fuhrt alles bis einschliesslich der %check-Phase aus. Dies beinhaltet im Allgemeinen einen Aufruf von make install und make check oder etwas Gleichbedeutendem. -bl fuhrt eine Listenuberprufung aus. Der %files-Abschnitt in der Spec-Datei wird Makro-expandiert und es wird uberpruft, ob jede der angegebenen Dateien existiert. -bs baut nur das Quellpaket - springt direkt zur Zusammenbauphase, ohne eine der vorausgehenden Phasen zu durchlaufen oder Binarpakete zu bauen. -br baut nur das Quellpaket, wertet aber auch dynamische Bauabhangigkeiten aus und bezieht diese ein - fuhrt alles bis einschliesslich der %generate_buildrequires-Phase aus und springt dann direkt zur Zusammenbauphase, ohne Binarpakete zu bauen. Dieser Befehl kann dazu verwendet werden, dynamische Bauabhangigkeiten vollstandig aufzulosen. Im Abschnitt DYNAMISCHE BAUABHANGIGKEITEN finden Sie weitere Details hierzu. -bd Uberpruft dynamische Bauabhangigkeiten und baut das Paket .buildreqs.nosrc.rpm falls etwas fehlt. Baut nichts anderes. Die folgenden Optionen konnen ausserdem verwendet werden: --buildroot VERZEICHNIS ersetzt das Tag BuildRoot beim Bau eines Pakets durch das angegebene VERZEICHNIS. --clean entfernt den Bau-Dateibaum, nachdem die Pakete gebaut wurden. --nobuild fuhrt keine Bauphasen aus. Dies ist zum Testen von Spec-Dateien nutzlich. --noprep fuhrt die %prep-Phase nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist. --noclean fuhrt die Bauphase %clean nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist. --nocheck fuhrt die Bauphase %check nicht aus, selbst wenn diese in der Spec-Datei vorhanden ist. --nodebuginfo baut keine Debuginfo-Pakete. --nodeps uberpruft keine Bauabhangigkeiten. --rmsource entfernt die Quellen nach dem Bau (kann auch fur sich allein verwendet werden, zum Beispiel >>rpmbuild --rmsource foo.spec<<). --rmspec entfernt die Spec-Datei nach dem Bau (dies kann auch fur sich allein verwendet werden, zum Beispiel >>rpmbuild --rmspec foo.spec<<). --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. --build-in-place baut aus lokal ausgecheckten Quellen. Dabei wird _builddir auf das aktuelle Arbeitsverzeichnis gesetzt. Die Auswertung von -n und untar in der %setup-Phase und das Loschen von buildSubdir wird ubersprungen. --target PLATTFORM interpretiert beim Bauen eines Pakets die PLATTFORM als arch-vendor-os und setzt die Makros %_target, %_target_cpu und %_target_os entsprechend. --with OPTION aktiviert die Konfigurationsoption OPTION fur den Bau. --without OPTION deaktiviert die Konfigurationsoption OPTION fur den Bau. OPTIONEN ZUM NEU BAUEN UND NEU KOMPILIEREN Es gibt zwei weitere Moglichkeiten, den Bauvorgang mit rpm anzustossen: rpmbuild --rebuild|--recompile QUELLPAKET Wenn es auf diese Weise aufgerufen wird, installiert rpmbuild das benannte Quellpaket und fuhrt die %prep-Phase (die Vorbereitung), die Kompilierung und die Installation aus. Zusatzlich baut die Option --rebuild ein neues Binarpaket. Wenn der Bau abgeschlossen ist, werden das Bauverzeichnis (wie in --clean) und die Quell- sowie Spec-Dateien geloscht. Diese Optionen wurden nun durch die -r*-Optionen ersetzt, die eine weitaus genauere Steuerung ermoglichen, welche Bauphasen ausgefuhrt werden sollen. 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. SHOWRC Der Befehl rpmbuild --showrc zeigt die Werte an, die rpmbuild fur alle Optionen anwenden wird, die gegenwartig in den Konfigurationsdateien rpmrc und macros gesetzt sind. DATEIEN Rpmrc-Konfiguration /usr/lib/rpm/rpmrc /usr/lib/rpm//rpmrc /etc/rpmrc ~/.rpmrc Makro-Konfiguration /usr/lib/rpm/macros /usr/lib/rpm//macros /etc/rpm/macros ~/.rpmmacros Temporar /var/tmp/rpm* SIEHE AUCH gendiff(1), popt(3), rpm(8), rpm2cpio(8), rpmkeys(8), rpmspec(8), rpmsign(8) rpmbuild --help - da rpm benutzerdefinierte Optionen uber Popt-Aliase unterstutzt, konnen wir unmoglich garantieren, dass die Beschreibungen in diesem Handbuch exakt dem entsprechen, was verfugbar ist. http://www.rpm.org/ AUTOREN Marc Ewing Jeff Johnson Erik Troan 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 . 9. Juni 2002 RPMBUILD(8)