Scroll to navigation

RPMBUILD(1) General Commands Manual RPMBUILD(1)

NUME

rpmbuild - construiește pachetul(ele) RPM

SINOPSIS

rpmbuild -bETAPA [opțiuni FIȘIER_SPECIFICAȚII ...

rpmbuild -rETAPA [opțiuni] PACHET_SURSĂ ...

rpmbuild -tETAPA [opțiuni] ARHIVĂ_TAR ...

rpmbuild {--rebuild|--recompile} [opțiuni] PACHET_SURSĂ ...

DESCRIERE

rpmbuild este utilizat pentru a crea pachete software în format RPM, într-un mod automatizat și repetabil.

Un pachet constă dintr-o arhivă de fișiere și metadate utilizate pentru instalarea și ștergerea fișierelor din arhivă. Metadatele includ scripturi auxiliare, atribute de fișiere și informații descriptive despre pachet.

Pachetele vin în două varietăți: pachete binare, utilizate pentru a încapsula software-ul care urmează să fie instalat, și pachete sursă, care conțin codul sursă și rețeta necesară pentru a produce pachete binare.

OPERAȚII

-bETAPA

Construiește ETAPA dintr-un fișier de specificații (*.spec).

|-rETAPA

Construiește ETAPA dintr-un pachet RPM sursă.

-tETAPA

Construiește ETAPA dintr-o arhivă tar(5).

--rebuild, --recompile

Alias de compatibilitate pentru -ra.

Pachetele sunt construite în patru faze: analiză, construire, asamblare și curățare. Cele două faze din mijloc sunt împărțite în continuare în etape, enumerate mai jos, care pot fi construite separat. Construirea unei ETAPE înseamnă executarea tuturor etapelor precedente până la (și inclusiv) cea specificată, cu excepția cazului în care se specifică altfel.

Etape de asamblare

Etapele de asamblare produc pachete și reprezintă principala modalitate de interacțiune cu rpmbuild. Dacă aveți dubii, alegeți una dintre acestea.

a

Construiește atât pachetele sursă, cât și cele binare. Aceasta nu este o etapă propriu-zisă, ci o combinație între b și s, cu diferența că pachetele construite în acest mod conțin un „cookie” care indică faptul că provin din aceeași construcție. În cazul succesului, directorul de construcție este eliminat.

b

Construiește doar pachetele binare. În cazul succesului, directorul de construire este eliminat.

r

Construiește doar pachetul sursă, verificând dependențele dinamice de construire. Execută etapele %prep și %generate_buildrequires înainte de a crea un pachet. Consultați secțiunea DEPENDENȚE DINAMICE DE CONSTRUIRE pentru detalii.

s

Construiește doar pachetul sursă. Nu se execută nicio etapă de construire.

Etape de construire

Etapele de construire produc artefactele care urmează să fie împachetate, de obicei prin aplicarea de plasturi (corecții) și compilarea surselor și instalarea fișierelor binare în „buildroot”. Aceste etape corespund, în general, secțiunilor din specificații, cum ar fi %prep, %build sau %install, dar unele dintre ele sunt implicite.

Construirea separată a acestor etape este utilă, în general, numai atunci când se împachetează software nou în format RPM și/sau se depanează. Acestea sunt enumerate mai jos în ordinea executării, cu secțiunea specifică corespunzătoare între paranteze, acolo unde este cazul.

p (%prep)

Despachetează sursele și aplică orice corecții (plasturi).

d (%generate_buildrequires)

Verifică dependențele dinamice de compilare și construiește pachetul buildreqs.nosrc.rpm dacă lipsește vreunul. Nu construiește nimic altceva.

f (%conf)

Configurează sursele. În general, acest lucru implică echivalentul lui ./configure.

c (%build)

Compilează sursele. În general, acest lucru implică echivalentul lui make.

i (%install și %check)

Instalează fișierele binare în rădăcina compilării. În general, acest lucru implică echivalentul unui make install și make check.

l

Efectuează o „verificare a listei” - secțiunea %files din fișierul spec este extinsă prin macro și se efectuează verificări pentru a se asigura că fiecare fișier există. Acest lucru necesită ca o construire anterioară până la etapa %install să fi avut loc.

ARGUMENTE

FIȘIER_SPECIFICAȚII

Un fișier cu specificații RPM.

PACHET_SURSĂ

Un pachet sursă RPM (cu extensia .src.rpm)

ARHIVĂ_TAR

O arhivă tar(5), opțional comprimată. Pentru a putea fi construită direct cu rpmbuild, o arhivă trebuie să conțină un fișier de specificații fie cu numele Specfile, fie cu extensia .spec.

OPȚIUNI

--build-in-place

Construiește din surse verificate local în directorul de lucru curent. Arborele de construire este configurat ca și cum s-ar fi utilizat %setup, dar %builddir/%buildsubdir indică înapoi către directorul de lucru curent. %prep este omisă în întregime.

--clean

Elimină arborele de construcție după ce pachetele au fost creat (implicit).

--nobuild

Nu execută nicio etapă de construcție. Util pentru testarea fișierelor de specificații.

--nocheck

Nu execută etapa de construire %check chiar dacă este prezentă în specificații.

--noclean

Nu execută etapa de construire %clean chiar dacă este prezentă în specificații.

--nodebuginfo

Nu generează pachete de informații de depanare „debuginfo”.

--nodeps

Nu verifică dependențele de compilare.

--noprep

Nu execută etapa de construire %prep, chiar dacă este prezentă în specificație. Se presupune că a existat o altă execuție rpmbuild în care %prep a fost deja executată.

--rmsource

Elimină sursele după construire (poate fi utilizată și independent, de exemplu rpmbuild --rmsource foo.spec).

--rmspec

Elimină fișierul de specificații după construire (poate fi utilizată și independent, de exemplu rpmbuild --rmspec foo.spec).

--rpmfcdebug

Imprimă informații de depanare privind clasificarea fișierelor și generarea dependențelor.

--scm=SCM

Selectează SCM pentru a fi utilizat cu %autosetup, dacă nu este definit unul în fișierul de specificații. Rețineți că nu toate valorile pentru SCM, de exemplu patch (implicit) și gendiff, git sau quilt funcționează în mod interschimbabil cu toate celelalte patch-uri și opțiuni menționate în linia %autosetup, în special opțiunea -pN.

--short-circuit

Trece direct la etapa specificată (adică sare peste toate etapele care duc la etapa specificată). Valabilă numai cu -bc, -bi și -bb. Utilă numai pentru teste locale. Pachetele construite în acest mod vor fi marcate cu o dependență nesatisfăcută pentru a preveni utilizarea lor accidentală.

--with OPȚIUNE

Activează OPȚIUNEA de configurare pentru construire.

--without OPȚIUNE

Dezactivează OPȚIUNEA de configurare pentru construire.

Consultați rpm-common(8) pentru opțiunile comune tuturor operațiilor.

DEPENDENȚE DE COMPILARE DINAMICĂ

Când etapa %generate_buildrequires rulează și unele dintre cerințele BuildRequires nou generate nu sunt îndeplinite, rpmbuild creează un pachet sursă intermediar care se termină în buildreqs.nosrc.rpm, care conține noile cerințe BuildRequires, și se închide cu codul 11. Acest pachet poate fi apoi utilizat în locul pachetului sursă original pentru a rezolva și instala dependențele de compilare lipsă în mod obișnuit, cum ar fi cu dnf-builddep(8).

Într-un fișier de specificații pot exista mai multe straturi de dependențe dinamice de compilare; prezența unor BuildRequires specifice în sistem poate genera noi BuildRequires la următoarea compilare efectuată cu același pachet sursă. Cea mai simplă modalitate de a vă asigura că toate dependențele dinamice de compilare sunt satisfăcute este să rulați opțiunea -br, să instalați noile dependențe ale pachetului buildreqs.nosrc.rpm și să repetați întreaga procedură până când rpmbuild nu mai iese cu codul 11.

Dacă opțiunea -br este asociată cu --nodeps, se returnează întotdeauna codul de ieșire 11 și se creează întotdeauna un pachet buildreqs.nosrc.rpm.

MEDIU

RPM_BUILD_NCPUS

Înlocuiește valoarea detectării automate a numărului de procesoare care vor fi utilizate pentru secțiunile paralelizate ale construirii.

STARE DE IEȘIRE

În caz de succes, se returnează 0, iar în caz contrar se returnează un cod de eșec diferit de zero.

Pachetele cu o secțiune generate_buildrequires vor returna codul 11 atunci când există DEPENDENȚE DE CONSTRUIRE DINAMICE neîndeplinite.

EXEMPLE

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

Construiește pachete binare și sursă din pachetul sursă hello-1.0-1.src.rpm.

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

Construiește pachete binare din fișierul spec hello.spec, omite etapa %check dacă este prezentă și activează suportul pentru condiția de construire openssl (presupunând că una este specificată în specificații).

rpmbuild -ta hello-2.0.tar.gz

Construiește pachete binare și sursă din arhiva comprimată hello-2.0.tar.gz, presupunând că arhiva conține un fișier de specificații legitim (a se vedea ARHIVĂ_TAR pentru detalii).

rpmbuild -bc hello.spec

Construiește hello.spec până la etapa %build inclusiv, adică fără a produce pachete reale.

rpmbuild -bi --short-circuit hello.spec

Execută numai etapa %install din hello.spec, omite toate etapele anterioare. Se presupune că a fost executată cel puțin etapa %build, vedeți exemplul anterior. Util pentru a evita reconstrucțiile complete atunci când se lucrează la secțiunea %files a unui pachet.

FIȘIERE

Consultați rpm-common(8).

CONSULTAȚI ȘI

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/

TRADUCERE

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

7 noiembrie 2025 RPM 6.0.0