RPMBUILD(8) RPMBUILD(8) NUME rpmbuild - construiete pachetul(ele) RPM SINOPSIS CONSTRUIREA PACHETELOR: rpmbuild {-ba|-bb|-bp|-bf|-bc|-bi|-bl|-bs|-br|-bd} [opiuni-rpmbuild] FIIER_SPEC ... rpmbuild {-ra|-rb|-rp|-rf|-rc|-ri|-rl|-rs|-rr|-rd} [opiuni-rpmbuild] PACHET_SURSA ... rpmbuild {-ta|-tb|-tp|-tf|-tc|-ti|-tl|-ts|-tr|-td} [opiuni-rpmbuild] TARBALL ... rpmbuild {--rebuild|--recompile} PACHET_SURSA ... DIVERSE: rpmbuild --showrc opiuni-rpmbuild [--buildroot DIRECTOR] [--clean] [--nobuild] [--rmsource] [--rmspec] [--short-circuit] [--build-in-place] [--noprep] [--noclean] [--nocheck] [--rpmfcdebug] [--target PLATFORMA] [--with OPIUNE] [--without OPIUNE] DESCRIERE rpmbuild este utilizat pentru a construi atat pachete software binare, cat i surse. Un pachet consta dintr-o arhiva de fiiere i metadate utilizate pentru instalarea i tergerea fiierelor arhivei. Metadatele includ scripturi ajutatoare, atribute ale fiierelor 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. Trebuie selectat unul dintre urmatoarele moduri de baza: Build Package, Build Package from Tarball, Recompile Package, Show Configuration. OPIUNI GENERALE Aceste opiuni pot fi utilizate in toate modurile diferite. -?, --help Imprima un mesaj de utilizare mai lung decat in mod normal. --version Imprima o singura linie care conine numarul versiunii de rpm utilizate. --quiet Imprima cat mai puin posibil - in mod normal, vor fi afiate doar mesajele de eroare. -v Imprima informaii detaliate - in mod normal, vor fi afiate mesaje de rutina privind progresul. -vv Imprima o mulime de informaii de depanare neplacute. --rpmfcdebug Activeaza generarea de dependene de depanare. --rcfile LISTA-FIIERE Fiecare dintre fiierele din LISTA-FIIERE, separate prin doua puncte, este citit secvenial de catre rpm pentru informaii de configurare. Numai primul fiier din lista trebuie sa existe, iar tildele vor fi extinse la valoarea lui $HOME. Valoarea implicita LISTA-FIIERE este /usr/lib/rpm/rpmrc:/usr/lib/rpm//rpmrc:/etc/rpmrc:~/.rpmrc. --pipe COMANDA Transmite ieirea lui rpm catre comanda COMANDA. --dbpath DIRECTOR Utilizeaza baza de date din DIRECTORY in loc de ruta implicita /var/lib/rpm. --root DIRECTOR Utilizeaza arborele sistemului de fiiere cu radacina la DIRECTOR pentru toate operaiile. Reinei ca acest lucru inseamna ca baza de date din DIRECTOR va fi utilizata pentru verificarile de dependena i orice scripuri (de exemplu, %post daca se instaleaza sau %prep daca se construiete un pachet) va fi rulat dupa un chroot(2) in DIRECTOR. -D, --define='MACRO EXPR' Definete MACRO cu valoarea EXPR. --scm=SCM Selecteaza SCM pentru a fi utilizat cu %autosetup, daca nu este definit unul in fiierul spec. Reinei ca nu toate valorile pentru SCM, de ex, patch (implicit) i gendiff, git, sau quilt funcioneaza interschimbabil cu toate celelalte corecii (patch-uri) i opiuni indicate in linia %autosetup, in special opiunea -pN. OPIUNI DE CONSTRUIRE Forma generala a unei comenzi de construire rpm este rpmbuild {-bETAPA|-rETAPA|-tETAPA} [opiuni-rpmbuild] FIIER ... Argumentul utilizat este -b daca se utilizeaza un fiier de specificaii pentru a construi pachetul, -r daca trebuie reconstruit un pachet sursa i -t daca rpmbuild trebuie sa caute in interiorul unui fiier tar (eventual comprimat) pentru a gasi fiierul de specificaii care trebuie utilizat. Pachetele sunt construite in mai multe etape. Primele ase corespund urmatoarelor seciuni dintr-un fiier spec: %prep, %generate_buildrequires, %build, %install, %check i %clean. In cele din urma, pachetele binare i sursa sunt create intr-o etapa de asamblare. Caracterul ETAPA specifica etapa cu care se termina (dupa parcurgerea tuturor etapelor anterioare) i este una dintre: -ba Efectueaza o construire completa - executa pana la etapa de asamblare inclusiv. In majoritatea cazurilor, aceasta este opiunea care trebuie aleasa. -bb Construiete doar pachetele binare - executa pana la etapa de asamblare inclusiv, dar fara a crea pachetul sursa. In caz de succes, directorul de compilare este eliminat (ca in --clean). -bp Despacheteaza sursele i aplica orice corecii (patch-uri) - executa doar etapa %prep. -bf Configureaza sursele - se executa pana la etapa %conf inclusiv. Aceasta implica in general echivalentul unei aciuni "./configure". -bc Compileaza sursele - executa pana la etapa %build inclusiv. Aceasta implica in general echivalentul unei operaii "make". -bi Instaleaza binarele in radacina de compilare - executa pana la etapa %check inclusiv. Aceasta implica in general echivalentul unei operaii "make install" i "make check". -bl Face o "verificare a listei" - seciunea %files din fiierul spec este macro-extinsa i se fac verificari pentru a se asigura ca fiecare fiier exista. -bs Construiete doar pachetul sursa - trece direct la etapa de asamblare, fara a executa niciuna dintre etapele anterioare sau a crea pachete binare. -br Construiete doar pachetul sursa, dar analizeaza i include dependenele de compilare dinamica - executa pana la etapa %generate_buildrequires inclusiv i apoi trece direct la etapa de asamblare, fara a crea pachete binare. Aceasta comanda poate fi utilizata pentru a rezolva complet dependenele de compilare dinamica. Consultai seciunea DEPENDENE DE COMPILARE DINAMICA pentru detalii. -bd Verifica dependenele de compilare dinamica i construiete pachetul .buildreqs.nosrc.rpm daca lipsete vreuna. Nu construiete nimic altceva. De asemenea, pot fi utilizate urmatoarele opiuni: --buildroot DIRECTOR Cand construiete un pachet, suprascrie eticheta BuildRoot cu directorul DIRECTOR. --clean Elimina arborele de construcie dupa ce pachetele au fost create. --nobuild Nu executa nicio etapa de construcie. Util pentru testarea fiierelor de specificaii. --noprep Nu se executa etapa de construire %prep chiar daca este prezenta in specificaii. --noclean Nu executa etapa de construire %clean chiar daca este prezenta in specificaii. --nocheck Nu executa etapa de construire %check chiar daca este prezenta in specificaii. --nodebuginfo Nu genereaza pachete de informaii de depanare ,,debuginfo". --nodeps Nu verifica dependenele de compilare. --rmsource Elimina sursele dupa compilare (poate fi folosita i in mod independent, de exemplu, << "rpmbuild --rmsource foo.spec">>). --rmspec Elimina fiierul de specificaii dupa compilare (poate fi, de asemenea, utilizat in mod independent, de exemplu, <<"rpmbuild --rmspec foo.spec">>). --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. --build-in-place Construiete din surse verificate la nivel local. Stabilete _builddir la directorul de lucru curent. Ignora gestionarea funciilor -n i untar din %setup i tergerea buildSubdir. --target PLATFORMA La construirea pachetului, interpreteaza PLATFORMA ca fiind arch-vendor-os i configureaza macrocomenzile %_target, %_target_cpu, i %_target_os in mod corespunzator. --with OPIUNE Activeaza configurarea OPIUNE pentru construire. --without OPIUNE Dezactiveaza configurarea OPIUNE pentru construire. OPIUNI DE RECONSTRUIRE I RECOMPILARE Exista alte doua moduri de a invoca construirea cu rpm: rpmbuild --rebuild|--recompile PACHET_SURSA ... Atunci cand este invocat in acest mod, rpmbuild instaleaza pachetul sursa numit i face o pregatire, compilare i instalare. In plus, --rebuild construiete un nou pachet binar. Dupa finalizarea compilarii, directorul de compilare este eliminat (ca in --clean), iar sursele i fiierul de specificaii pentru pachet sunt eliminate. Aceste opiuni sunt acum inlocuite de opiunile -r*, care permit un control mult mai fin asupra etapelor de execuie. DEPENDENE DE COMPILARE DINAMICA Atunci cand etapa %generate_buildrequires ruleaza i unele dintre BuildRequires nou generate nu sunt indeplinite, rpmbuild creeaza un pachet sursa intermediar care se termina in buildreqs.nosrc.rpm, care are noile BuildRequires, i iese 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 spec pot exista mai multe straturi de dependene de compilare dinamica; prezena unor BuildRequires specifice in sistem poate genera noi BuildRequires data viitoare cand se efectueaza o compilare cu acelai pachet sursa. Cel mai simplu mod de a va asigura ca toate dependenele de compilare dinamica sunt satisfacute este sa executai comanda -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 comanda -br este cuplata cu --nodeps, codul de ieire 11 este intotdeauna returnat i un pachet buildreqs.nosrc.rpm este intotdeauna creat. SHOWRC Comanda rpmbuild --showrc arata valorile pe care rpmbuild le va folosi pentru toate opiunile definite in prezent in fiierele de configurare rpmrc i macros. FIIERE Configuraia rpmrc /usr/lib/rpm/rpmrc /usr/lib/rpm//rpmrc /etc/rpmrc ~/.rpmrc Configuraia macro /usr/lib/rpm/macros /usr/lib/rpm//macros /etc/rpm/macros ~/.rpmmacros Temporar /var/tmp/rpm* CONSULTAI I gendiff(1), popt(3), rpm(8), rpm2cpio(8), rpmkeys(8), rpmspec(8), rpmsign(8) rpmbuild --help - deoarece rpm accepta personalizarea opiunilor prin intermediul pseudonimelor ,,alias" popt, este imposibil sa se garanteze ca ceea ce este descris in manual corespunde cu ceea ce este disponibil. http://www.rpm.org/ AUTORI Marc Ewing Jeff Johnson Erik Troan 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 . 9 iunie 2002 RPMBUILD(8)