RPMBUILD(1)

NAMN
rpmbuild — Bygg RPM-paket

SYNOPSIS
rpmbuild -b​STEG [flaggor] SPEC-FIL …

rpmbuild -r​STEG [flaggor] KÄLLPAKET …

rpmbuild -t​STEG [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
-b​STEG
    Bygg STEG från en spec-fil.

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

-t​STEG
    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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.