RPMBUILD(1) General Commands Manual RPMBUILD(1) NUME rpmbuild - construiete pachetul(ele) RPM SINOPSIS rpmbuild -bETAPA [opiuni FIIER_SPECIFICAII ... rpmbuild -rETAPA [opiuni] PACHET_SURSA ... rpmbuild -tETAPA [opiuni] ARHIVA_TAR ... rpmbuild {--rebuild|--recompile} [opiuni] PACHET_SURSA ... DESCRIERE rpmbuild este utilizat pentru a crea pachete software in format RPM, intr-un mod automatizat i repetabil. Un pachet consta dintr-o arhiva de fiiere i metadate utilizate pentru instalarea i tergerea fiierelor din arhiva. Metadatele includ scripturi auxiliare, atribute de fiiere i informaii descriptive despre pachet. Pachetele vin in doua varietai: pachete binare, utilizate pentru a incapsula software-ul care urmeaza sa fie instalat, i pachete sursa, care conin codul sursa i reeta necesara pentru a produce pachete binare. OPERAII -bETAPA Construiete ETAPA dintr-un fiier de specificaii (*.spec). |-rETAPA Construiete ETAPA dintr-un pachet RPM sursa. -tETAPA Construiete ETAPA dintr-o arhiva tar(5). --rebuild, --recompile Alias de compatibilitate pentru -ra. Pachetele sunt construite in patru faze: analiza, construire, asamblare i curaare. Cele doua faze din mijloc sunt imparite in continuare in etape, enumerate mai jos, care pot fi construite separat. Construirea unei ETAPE inseamna executarea tuturor etapelor precedente pana la (i inclusiv) cea specificata, cu excepia cazului in care se specifica altfel. Etape de asamblare Etapele de asamblare produc pachete i reprezinta principala modalitate de interaciune cu rpmbuild. Daca avei dubii, alegei una dintre acestea. a Construiete atat pachetele sursa, cat i cele binare. Aceasta nu este o etapa propriu-zisa, ci o combinaie intre b i s, cu diferena ca pachetele construite in acest mod conin un ,,cookie" care indica faptul ca provin din aceeai construcie. In cazul succesului, directorul de construcie este eliminat. b Construiete doar pachetele binare. In cazul succesului, directorul de construire este eliminat. r Construiete doar pachetul sursa, verificand dependenele dinamice de construire. Executa etapele %prep i %generate_buildrequires inainte de a crea un pachet. Consultai seciunea DEPENDENE DINAMICE DE CONSTRUIRE pentru detalii. s Construiete doar pachetul sursa. Nu se executa nicio etapa de construire. Etape de construire Etapele de construire produc artefactele care urmeaza sa fie impachetate, de obicei prin aplicarea de plasturi (corecii) i compilarea surselor i instalarea fiierelor binare in ,,buildroot". Aceste etape corespund, in general, seciunilor din specificaii, cum ar fi %prep, %build sau %install, dar unele dintre ele sunt implicite. Construirea separata a acestor etape este utila, in general, numai atunci cand se impacheteaza software nou in format RPM i/sau se depaneaza. Acestea sunt enumerate mai jos in ordinea executarii, cu seciunea specifica corespunzatoare intre paranteze, acolo unde este cazul. p (%prep) Despacheteaza sursele i aplica orice corecii (plasturi). d (%generate_buildrequires) Verifica dependenele dinamice de compilare i construiete pachetul buildreqs.nosrc.rpm daca lipsete vreunul. Nu construiete nimic altceva. f (%conf) Configureaza sursele. In general, acest lucru implica echivalentul lui ./configure. c (%build) Compileaza sursele. In general, acest lucru implica echivalentul lui make. i (%install i %check) Instaleaza fiierele binare in radacina compilarii. In general, acest lucru implica echivalentul unui make install i make check. l Efectueaza o ,,verificare a listei" - seciunea %files din fiierul spec este extinsa prin macro i se efectueaza verificari pentru a se asigura ca fiecare fiier exista. Acest lucru necesita ca o construire anterioara pana la etapa %install sa fi avut loc. ARGUMENTE FIIER_SPECIFICAII Un fiier cu specificaii RPM. PACHET_SURSA Un pachet sursa RPM (cu extensia .src.rpm) ARHIVA_TAR O arhiva tar(5), opional comprimata. Pentru a putea fi construita direct cu rpmbuild, o arhiva trebuie sa conina un fiier de specificaii fie cu numele Specfile, fie cu extensia .spec. OPIUNI --build-in-place Construiete din surse verificate local in directorul de lucru curent. Arborele de construire este configurat ca i cum s-ar fi utilizat %setup, dar %builddir/%buildsubdir indica inapoi catre directorul de lucru curent. %prep este omisa in intregime. --clean Elimina arborele de construcie dupa ce pachetele au fost creat (implicit). --nobuild Nu executa nicio etapa de construcie. Util pentru testarea fiierelor de specificaii. --nocheck Nu executa etapa de construire %check chiar daca este prezenta in specificaii. --noclean Nu executa etapa de construire %clean chiar daca este prezenta in specificaii. --nodebuginfo Nu genereaza pachete de informaii de depanare ,,debuginfo". --nodeps Nu verifica dependenele de compilare. --noprep Nu executa etapa de construire %prep, chiar daca este prezenta in specificaie. Se presupune ca a existat o alta execuie rpmbuild in care %prep a fost deja executata. --rmsource Elimina sursele dupa construire (poate fi utilizata i independent, de exemplu rpmbuild --rmsource foo.spec). Reinei ca, prin definiie, fiierele NoSource i NoPatch nu sunt surse i, prin urmare, nu sunt afectate de aceasta opiune. --rmspec Elimina fiierul de specificaii dupa construire (poate fi utilizata i independent, de exemplu rpmbuild --rmspec foo.spec). --rpmfcdebug Imprima informaii de depanare privind clasificarea fiierelor i generarea dependenelor. --scm=SCM Selecteaza SCM pentru a fi utilizat cu %autosetup, daca nu este definit unul in fiierul de specificaii. Reinei ca nu toate valorile pentru SCM, de exemplu patch (implicit) i gendiff, git sau quilt funcioneaza in mod interschimbabil cu toate celelalte patch-uri i opiuni menionate in linia %autosetup, in special opiunea -pN. --short-circuit Trece direct la etapa specificata (adica sare peste toate etapele care duc la etapa specificata). Valabila numai cu -bc, -bi i -bb. Utila numai pentru teste locale. Pachetele construite in acest mod vor fi marcate cu o dependena nesatisfacuta pentru a preveni utilizarea lor accidentala. --with OPIUNE Activeaza OPIUNEA de configurare pentru construire. --without OPIUNE Dezactiveaza OPIUNEA de configurare pentru construire. Consultai rpm-common(8) pentru opiunile comune tuturor operaiilor. DEPENDENE DE COMPILARE DINAMICA Cand etapa %generate_buildrequires ruleaza i unele dintre cerinele BuildRequires nou generate nu sunt indeplinite, rpmbuild creeaza un pachet sursa intermediar care se termina in buildreqs.nosrc.rpm, care conine noile cerine BuildRequires, i se inchide cu codul 11. Acest pachet poate fi apoi utilizat in locul pachetului sursa original pentru a rezolva i instala dependenele de compilare lipsa in mod obinuit, cum ar fi cu dnf-builddep(8). Intr-un fiier de specificaii pot exista mai multe straturi de dependene dinamice de compilare; prezena unor BuildRequires specifice in sistem poate genera noi BuildRequires la urmatoarea compilare efectuata cu acelai pachet sursa. Cea mai simpla modalitate de a va asigura ca toate dependenele dinamice de compilare sunt satisfacute este sa rulai opiunea -br, sa instalai noile dependene ale pachetului buildreqs.nosrc.rpm i sa repetai intreaga procedura pana cand rpmbuild nu mai iese cu codul 11. Daca opiunea -br este asociata cu --nodeps, se returneaza intotdeauna codul de ieire 11 i se creeaza intotdeauna un pachet buildreqs.nosrc.rpm. MEDIU RPM_BUILD_NCPUS Inlocuiete valoarea detectarii automate a numarului de procesoare care vor fi utilizate pentru seciunile paralelizate ale construirii. STARE DE IEIRE In caz de succes, se returneaza 0, iar in caz contrar se returneaza un cod de eec diferit de zero. Pachetele cu o seciune generate_buildrequires vor returna codul 11 atunci cand exista DEPENDENE DE CONSTRUIRE DINAMICE neindeplinite. EXEMPLE rpmbuild --rebuild hello-1.0-1.src.rpm Construiete pachete binare i sursa din pachetul sursa hello-1.0-1.src.rpm. rpmbuild -bb --nocheck --with openssl hello.spec Construiete pachete binare din fiierul spec hello.spec, omite etapa %check daca este prezenta i activeaza suportul pentru condiia de construire openssl (presupunand ca una este specificata in specificaii). rpmbuild -ta hello-2.0.tar.gz Construiete pachete binare i sursa din arhiva comprimata hello-2.0.tar.gz, presupunand ca arhiva conine un fiier de specificaii legitim (a se vedea ARHIVA_TAR pentru detalii). rpmbuild -bc hello.spec Construiete hello.spec pana la etapa %build inclusiv, adica fara a produce pachete reale. rpmbuild -bi --short-circuit hello.spec Executa numai etapa %install din hello.spec, omite toate etapele anterioare. Se presupune ca a fost executata cel puin etapa %build, vedei exemplul anterior. Util pentru a evita reconstruciile complete atunci cand se lucreaza la seciunea %files a unui pachet. FIIERE Consultai rpm-common(8). CONSULTAI 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 in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . RPM 6.0.1 8 ianuarie 2026 RPMBUILD(1)