Scroll to navigation

RPMBUILD(1) General Commands Manual RPMBUILD(1)

NAMN

rpmbuild — Bygg RPM-paket

SYNOPSIS

rpmbuild -bSTEG [flaggor] SPEC-FIL

rpmbuild -rSTEG [flaggor] KÄLLPAKET

rpmbuild -tSTEG [flaggor] TAR-ARKIV

rpmbuild {--rebuild|--recompile} [flaggor] KÄLLPAKET

BESKRIVNING

rpmbuild används för att bygga programvarupaket i formatet RPM på ett automatiserat och repeterbart sätt.

Ett paket består av ett arkiv av filer och metadata som används för att installera och radera arkivfiler. Metadatan inkluderar hjälpskript, filattribut och beskrivande information om paketet.

Paket finns i två varianter: binärpaket, använda för att kapsla in programvara som kan installeras, och källpaket, som innehåller källkoden och receptet som behövs för att producera binärpaket.

ÅTGÄRDER

-bSTEG

Bygg STEG från en spec-fil.

-rSTEG

Bygg STEG från ett käll-RPM-paket.

-tSTEG

Bygg STEG från ett tar(5)-arkiv.

--rebuild, --recompile

Kompatibilitetsalias för -ra.

Paket byggs i fyra faser: tolka, bygg, sätt samman och städa upp. De mittersta två är vidare uppdelade i steg, listade nedan, vilka kan byggas separat. Att bygga ett STEG betyder att köra alla de föregående stegen fram till (och inklusive) det angivna, såvida inte annat sägs.

Sammansättningssteg

Sammansättningsstegen skapar paket och är det huvudsakliga sättet att interagera med rpmbuild. Om du är osäker, välj ett av dessa.

a

Bygg både käll- och binärpaket. Detta är inte ett faktiskt steg utan en kombination av b och s, med skillnaden att paket som byggs på detta sätt innehåller en ”kaka” för att indikera att de kommer från samma bygge. Om det går bra tas byggkatalogen bort.

b

Bygg bara binärpaket. Om det går bra tas byggkatalogen bort.

r

Bygg bara källpaketet med kontroll av dynamiska byggberoenden. Kör stegen %prep och %generate_buildrequires före ett paket skapas. Se avsnittet DYNAMISKA BYGGBEROENDEN för detaljer.

s

Bygg bara källpaketet. Inga byggsteg körs.

Byggsteg

Byggstegen skapar artifakterna som skall paketeras, typiskt genom att patcha och kompilera källkoden och installera binärerna i byggroten. Dessa steg motsvarar allmänt sådana sektioner i spec-filen %prep, %build eller %install, men det finns några som är implicita.

Att bygga dessa steg separat är i allmänhet endast användbart när ny programvara paketeras i RPM-format och/eller felsökning. De listas nedan i den ordning de körs, med motsvarande sektioner i spec-filen i parenteser där det är tillämpligt.

p (%prep)

Packa upp källkoden och tillämpa eventuella patchar.

d (%generate_buildrequires)

Kontrollera dynamiska byggberoenden och bygg paketet buildreqs.nosrc.rpm om några saknas. Bygg inte något annat.

f (%conf)

Konfigurera källkoden. Detta innefattar vanligen motsvarigheten till en ./configure.

c (%build)

Kompilera källkoden. Detta innebär normalt motsvarigheten till make.

i (%install och %check)

Installera binärerna i byggroten. Detta innebär normalt motsvarigheten till en make install och make check.

l

Gör en ”listkontroll” — avsnittet %files från spec-filen makroexpanderas, och kontroller görs för att verifiera att varje fil finns. Detta förutsätter att ett tidigare bygge upp till steget %install har skett.

ARGUMENT

SPEC-FIL

En RPM-spec-fil.

KÄLLPAKET

Ett RPM-källpaket (med ändelsen .\&src.\&rpm)

TAR-ARKIV

Ett tar(5)-arkiv, eventuellt komprimerat. För att vara direkt byggbart med rpmbuild måste ett arkiv innehålla en spec-fil antingen med namnet Specfile eller med en ändelse .spec.

FLAGGOR

--build-in-place

Bygg från lokalt utcheckad källkod i den aktuella arbetskatalogen. Byggträdet sätts om som om %setup använts, men %builddir/%buildsubdir pekar tillbaka på den aktuella arbetskatalogen. %prep hoppas helt över.

--clean

Ta bort byggträdet efter att paketen gjorts (standard).

--nobuild

Kör inte några byggsteg. Användbart för att testa spec-filer.

--nocheck

Kör inte byggsteget %check även om det finns i spec.

--noclean

Kör inte byggsteget %clean även om det finns i spec.

--nodebuginfo

Generera inte debuginfo-paket.

--nodeps

Verifiera inte byggberoenden.

--noprep

Kör inte byggsteget %prep även om det finns i spec. Detta antar att det har gjorts en annan körning av rpmbuild i vilken %prep redan har körts.

--rmsource

Ta bort källkoder efter bygget (kan även användas fristående, t.ex. rpmbuild --rmsource apa.spec).

--rmspec

Ta bort spec-filen efter bygget (kan även användas fristående, t.ex. rpmbuild --rmspec apa.spec).

--rpmfcdebug

Skriv ut felsökningsinformation om filklassificering och beroendegenerering.

--scm=SCM

Välj vilket SCM som skall användas med %autosetup, om inte något är satt i spec-filen. Observera att inte alla värden på SCM, t.ex., patch (standard) och gendiff, git eller quilt fungerar utbytbart med alla andra patchar och flaggor som anges på raden %autosetup, särskilt flaggan -pN.

--short-circuit

Hoppa direkt till det angivna steget (d.v.s., hoppa över alla steg som leder fram till det angivna steget). Endast giltigt med -bc, -bi och -bb. Endast användbart för lokal testning. Paket som byggts på detta sätt kommer markeras med ett beroende som inte kan uppfyllas för att förhindra att det används av misstag.

--with FLAGGA

Aktivera konfigurationen FLAGGA för bygget.

--without FLAGGA

Avaktivera konfigurationen FLAGGA för bygget.

Se rpm-common(8) för flaggorna gemensamma för alla åtgärder.

DYNAMISKA BYGGBEROENDEN

När steget %generate_buildrequires körs och några av de nygenererade BuildRequires inte är uppfyllda skapar rpmbuild ett intermediärt källpaket som slutar med buildreqs.nosrc.rpm, vilket har de nya BuildRequires, och avslutar med kod 11. Detta paket kan sedan användas istället för originalkällpaketet för att lösa upp och installera de saknade byggberoendena på det vanliga sättet, såsom med dnf-builddep(8).

Flera nivåer av dynamiska byggberoenden kan finnas i en spec-fil; förekomsten av specifika BuildRequires på systemet kan producera nya BuildRequires nästa gång ett bygge görs med samma källpaket. Det enklaste sättet att säkerställa att alla dynamiska byggberoenden är uppfyllda är att använda flaggan -br, installera de nya beroendena i paketet buildreqs.nosrc.rpm och upprepa hela proceduren tills rpmbuild inte längre avslutas med kod 11.

Om flaggan -br kopplas ihop med --nodeps returneras alltid slutkod 11 och ett paket buildreqs.nosrc.rpm skapas alltid.

MILJÖ

RPM_BUILD_NCPUS

Åsidosätt autodetektering av antalet CPU:er att använda för parallelliserade avsnitt av bygget.

SLUTSTATUS

Om det gick bra returneras 0, annars en nollskild felkod.

Paket med en sektion %generate_buildrequires kommer returnera med kod 11 när det finns ouppfyllda DYNAMISKA BYGGBEROENDEN.

EXEMPEL

rpmbuild --rebuild hej-1.0-1.src.rpm

Bygg binär- och källpaket från källpaketet hej-1.0-1.src.rpm.

rpmbuild -bb --nocheck --with openssl hej.spec

Bygg binärpaket från spec-filen hej.spec, där steget %check hoppas över ifall det finns och aktivera stöd för byggvillkoret openssl (under antagandet att det är specificerat i spec:en).

rpmbuild -ta hej-2.0.tar.gz

Bygg binär- och källpaket från den komprimerade tarbollen hej-2.0.tar.gz, med antagandet att arkivet innehåller en korrekt spec-fil (se TARARKIV för detaljer).

rpmbuild -bc hej.spec

Bygg hej.spec fram till och med steget %build, d.v.s. utan att producera faktiska paket.

rpmbuild -bi --short-circuit hej.spec

Kör bara steget %install i hej.spec och hoppa över alla föregående steg. Detta antar att en tidigare körning åtminstone fram till steget %build, se tidigare exempel. Användbart för att undvika fullständiga ombyggen när man arbetar med sektionen %files i ett paket.

FILER

Se rpm-common(8)

SE ÄVEN

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/

ÖVERSÄTTNING

Den svenska översättningen av denna manualsida skapades av Göran Uddeborg <goeran@uddeborg.se>

Denna översättning är fri dokumentation; läs GNU General Public License Version 3 eller senare för upphovsrättsvillkor. Vi tar INGET ANSVAR.

Om du hittar fel i översättningen av denna manualsida, skicka ett mail till Tp-sv@listor.tp-sv.se.

7 november 2025 RPM 6.0.0