RPMBUILD(1)

NUME
rpmbuild - construiește pachetul(ele) RPM

SINOPSIS
rpmbuild -b​ETAPA [opțiuni FIȘIER_SPECIFICAȚII ...

rpmbuild -r​ETAPA [opțiuni] PACHET_SURSĂ ...

rpmbuild -t​ETAPA [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). Rețineți că, prin definiție, fișierele NoSource și NoPatch nu sunt surse și, prin urmare, nu sunt afectate de această opțiune.

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