RPMBUILD(8) RPMBUILD(8)

rpmbuild - Budowanie pakietów RPM

rpmbuild {-ba|-bb|-bp|-bc|-bi|-bl|-bs} [opcje-rpmbuild] PLIK_SPEC ...

rpmbuild {-ta|-tb|-tp|-tc|-ti|-tl|-ts} [opcje-rpmbuild] TARBALL ...

rpmbuild {--rebuild|--recompile} PAKIET_ŹRÓDŁOWY ...

rpmbuild --showrc

[--buildroot KATALOG] [--clean] [--nobuild] [--rmsource] [--rmspec] [--short-circuit] [--sign] [--target PLATFORMA]

rpmbuild służy do budowania binarnych i źródłowych pakietów oprogramowania. Pakiet składa się z archiwum plików oraz metadanych używanych do instalowania i usuwania plików. Metadane zawierają pomocnicze skrypty, atrybuty plików oraz informacje opisujące pakiet. Pakiety występują w dwóch wersjach: pakietach binarnych, służących do opakowania oprogramowania do instalacji oraz pakietach źródłowych, zawierających kod źródłowy i przepis na zbudowanie pakietów binarnych.

Trzeba wybra jeden z następujących podstawowych trybów: Budowanie pakietu, Budowanie pakietu z tarballa, Rekompilacja pakietu, Wyświetlenie konfiguracji.

Opcje te mogą by używane we wszystkich trybach.

-?, --help
Wypisuje informację o użyciu dłuższą niż zwykle.
Wypisuje pojedynczą linię, zawierającą numer wersji używanego rpm-a.
Wypisuje jak najmniej - zazwyczaj tylko komunikaty o błędach.
Wypisuje szczegółowe informacje - zwykle komunikaty o przebiegu procesu.
Wypisuje dużo brzydkich informacji diagnostycznych.
Każdy z plików w oddzielonej dwukropkami LIŚCIE_PLIKÓW jest odczytywany kolejno przez rpm-a w poszukiwaniu informacji o konfiguracji. Istnie musi tylko pierwszy plik z listy, a tyldy są zamieniane na wartoś $HOME. Domyślną LISTĄ_PLIKÓW jest /usr/lib/rpm/rpmrc:/usr/lib/rpm/<vendor>/rpmrc:/etc/rpmrc:~/.rpmrc.
Przekazuje potokiem wyjście rpm-a do KOMENDY.
Używa bazy danych z KATALOGU zamiast domyślnego /var/lib/rpm.
Używa do wszystkich operacji systemu zakorzenionego w KATALOGU. Zauważ, że oznacza to, że baza danych w KATALOGU będzie używana przy sprawdzaniu zależności, a wszystkie skrypty (np. %post przy instalacji pakietu lub %prep przy budowaniu pakietu) będą uruchamiane po chroot(2) na KATALOG.

Ogólną postacią komendy budowania rpm-a jest

rpmbuild -bETAP|-tETAP [ ** opcje-rpmbuild** ] PLIK ...

Jeśli do zbudowania pakietu używany jest plik spec, to argumentem powinno by -b, a jeśli rpmbuild powinien zajrze wewnątrz (by może skompresowanego) pliku tar w poszukiwaniu speca, to powinna by użyta opcja -t. Po pierwszym argumencie, drugi znak (ETAP) określa etapy budowania i pakietowania, które należy wykona. Może by jednym z:

Buduje pakiety binarny i źródłowy (po wykonaniu etapów %prep, %build i %install).
Buduje pakiet binarny (po wykonaniu etapów %prep, %build i %install).
Wykonuje etap "%prep" z pliku spec. Zwykle obejmuje to rozpakowanie źródeł i zaaplikowanie wszelkich łat.
Wykonuje etap "%build" z pliku spec (po wykonaniu etapu %prep). Ogólnie obejmuje to odpowiednik "make".
Wykonuje etap "%install" z pliku spec (po wykonaniu etapów %prep i %build). Ogólnie obejmuje to odpowiednik "make install".
Dokonuje sprawdzenia listy. W sekcji "%files" pliku spec rozwijane są makra i dokonywane są sprawdzenia, by upewni się, że każdy plik istnieje.
Buduje tylko pakiet źródłowy.

Mogą by też użyte następujące opcje:

Na czas budowania pakietu zastępuje wartoś BuildRoot KATALOGIEM.
Usuwa drzewo budowania po stworzeniu pakietów.
Nie wykonuje żadnych etapów budowania. Przydatne do testowania plików spec.
Usuwa źródła po budowaniu (może by też używane samodzielnie, np. "rpmbuild --rmsource foo.spec").
Usuwa plik spec po budowaniu (może by też używane samodzielnie, np. "rpmbuild --rmspec foo.spec").
Przechodzi wprost do podanego etapu (tzn. pomija wszystkie etapy prowadzące do podanego). Prawidłowe tylko z -bc i -bi.
Osadza w pakiecie sygnaturę GPG. Sygnatura ta może by używana do weryfikowania integralności i pochodzenia pakietu. Zobacz sekcję o SYGNATURACH GPG w rpm(8), gdzie znajdują się szczegóły dotyczące konfiguracji.
Podczas budowania pakietu interpretuje PLATFORMĘ jako arch-vendor-os i ustawia odpowiednio makra %_target, %_target_cpu oraz %_target_os.

Istnieją dwa inne sposoby na wywołanie budowania przy użyciu rpm-a:

rpmbuild --rebuild|--recompile PAKIET_ŹRÓDŁOWY ...

Po takim wywołaniu, rpmbuild instaluje podany pakiet źródłowy oraz wykonuje etapy prep, kompilacji i instalacji. Dodatkowo, --rebuild buduje nowy pakiet binarny. Po tym jak budowanie jest zakończone, katalog budowania jest usuwany (jak przy --clean), a potem źródła i plik spec dla pakietu są usuwane.

Polecenie

rpmbuild --showrc

pokazuje wartości, których rpmbuild będzie używał dla wszystkich opcji, które są aktualnie ustawione w plikach konfiguracyjnych rpmrc oraz macros.

/usr/lib/rpm/rpmrc
/usr/lib/rpm/<vendor>/rpmrc
/etc/rpmrc
~/.rpmrc

/usr/lib/rpm/macros
/usr/lib/rpm/<vendor>/macros
/etc/rpm/macros
~/.rpmmacros

/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filemd5s
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Removed
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername

/var/tmp/rpm*

popt(3),
rpm2cpio(8),
gendiff(1),
rpm(8),

http://www.rpm.org/ <URL:http://www.rpm.org/>

Marc Ewing <marc@redhat.com>
Jeff Johnson <jbj@redhat.com>
Erik Troan <ewt@redhat.com>
9 czerwca 2002