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.
- --version
- Wypisuje pojedynczą linię,
zawierającą numer wersji używanego rpm-a.
- --quiet
- Wypisuje jak najmniej - zazwyczaj tylko komunikaty o
błędach.
- -v
- Wypisuje szczegółowe informacje - zwykle
komunikaty o przebiegu procesu.
- -vv
- Wypisuje dużo brzydkich informacji
diagnostycznych.
-
--rcfile LISTA_PLIKÓW
- 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.
-
--pipe KOMENDA
- Przekazuje potokiem wyjście rpm-a do
KOMENDY.
-
--dbpath KATALOG
- Używa bazy danych z KATALOGU zamiast
domyślnego /var/lib/rpm.
-
--root KATALOG
- 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:
- -ba
- Buduje pakiety binarny i źródłowy (po
wykonaniu etapów %prep, %build i %install).
- -bb
- Buduje pakiet binarny (po wykonaniu etapów %prep,
%build i %install).
- -bp
- Wykonuje etap "%prep" z pliku spec. Zwykle
obejmuje to rozpakowanie źródeł i zaaplikowanie
wszelkich łat.
- -bc
- Wykonuje etap "%build" z pliku spec (po wykonaniu
etapu %prep). Ogólnie obejmuje to odpowiednik
"make".
- -bi
- Wykonuje etap "%install" z pliku spec (po
wykonaniu etapów %prep i %build). Ogólnie obejmuje to
odpowiednik "make install".
- -bl
- Dokonuje sprawdzenia listy. W sekcji "%files"
pliku spec rozwijane są makra i dokonywane są sprawdzenia,
by upewni się, że każdy plik istnieje.
- -bs
- Buduje tylko pakiet źródłowy.
Mogą by też użyte następujące opcje:
-
--buildroot KATALOG
- Na czas budowania pakietu zastępuje wartoś
BuildRoot KATALOGIEM.
- --clean
- Usuwa drzewo budowania po stworzeniu pakietów.
- --nobuild
- Nie wykonuje żadnych etapów budowania.
Przydatne do testowania plików spec.
- --rmsource
- Usuwa źródła po budowaniu (może
by też używane samodzielnie, np. " rpmbuild
--rmsource foo.spec").
- --rmspec
- Usuwa plik spec po budowaniu (może by też
używane samodzielnie, np. " rpmbuild --rmspec
foo.spec").
- --short-circuit
- Przechodzi wprost do podanego etapu (tzn. pomija wszystkie
etapy prowadzące do podanego). Prawidłowe tylko z -bc
i -bi.
- --sign
- 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.
-
--target PLATFORMA
- 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 <[email protected]>
Jeff Johnson <[email protected]>
Erik Troan <[email protected]>