Table of Contents
Skrypt builder
Skrypt jest dostarczany razem z pakietem rpm-build-tools, poza tym jest zapisywany dodatkowo w katalogu ~/rpm/packages - przy operacji przygotowania środowiska.
builder
automatycznie kompletuje wszystkie pliki (włączając w to plik spec
) potrzebne do zbudowania danego pakietu (jeżeli licencja na to pozwala, w innym wypadku musisz ręcznie ściągnąć konieczne pliki i zapisać je w ~/rpm/packages/foo). Kiedy wszystkie zależności są spełnione, builder
uruchamia program rpmbuild
, który inicjuje proces budowy. rpmbuild
zaczyna od znalezienia ewentualnych niespełnionych zależności potrzebnych do zakończenia procesu. Jeżeli jakieś znajdzie, builder
zakończy działanie wypisując listę wszystkich potrzebnych pakietów. Możesz użyć programu poldek
aby je ściągnąć i zainstalować.
Użycie
Teraz możesz wykonać /usr/bin/builder
, aby zobaczyć listę możliwych parametrów:
$ builder
Ogólna składnia wygląda tak:
$ builder [opcje] pakiet[.spec]
Rozszerzenie .spec
jest opcjonalne, skrypt doda je w razie potrzeby.
Najczęściej używane opcje:
-bb
aby zbudować tylko pakiet binarny (pomija tworzenie pakietu źródłowego RPM)-bc
aby posprzątać po udanym budowaniu pakietu (usuwa scieżkę, w której był budowany pakiet)-g
pobranie pakietu, bez budowania-r GAŁĄŹ
aby użyć źródeł z konkretnej gałęzi czy wersji danego pakietu (lista dostępnych odgałęzień widoczna jest na początku procesu budowania)-U
aby skompletować wszystkie źródła i uaktualnić ich hashe MD5 w plikuspec
-5
aby uaktualnić hashe MD5 używając lokalnych źródeł–with OPCJA
lub–without OPCJA
aby zbudować pakiet z niestandardowymi opcjami (dostępne opcje są wypisane na początku procesu budowania). Listę dostępnych opcji uzyskujemy za pomocą argumentu–show-bconds
-R
automatycznie instaluje pakiety, które są konieczne do budowania, zaleca się instalacjęrpm-getdeps
dla lepszego rezultatu–target ARCH
pozwala budować pakiety dla innej architektury, niż architektura systemu.
Pełny zestaw opcji jest dostępny po uruchomieniu programu bez argumentów.
Przykłady
Typowe budowanie (binarnego) pakietu foo z HEAD CVS-u:
$ builder -bb foo
j.w. tyle, że z automatycznym zainstalowaniem koniecznych pakietów (z BuildRequires):
$ builder -bb -R foo
Aby wykonać pełną budowę pakietu, który aktualnie rozwijany jest w gałęzi DEVEL:
$ builder -bc -r DEVEL foo
Aby zaktualizować hashe MD5 w powyższym pliku spec
:
$ builder -r DEVEL -U foo
Instalacja dla wybranej architektury:
$ builder --target i486 foo
Budowanie pakietu foo z ustawieniem opcji “something” i wyłączeniem “bar”:
$ builder --with something --without bar foo
Zbudowane pakiety
Gdy proces budowy zostanie zakończony, wszystkie binarne pliki RPM będą natychmiast dostępne w ~/rpm/RPMS, a pakiety RPM ze źródłami (jeżeli takowe miały powstać) zostaną zapisane ~/rpm/SRPMS. Pakiety zapisane w ~/rpm/RPMS są łatwo dostępne w poldku dzięki źródłu home:
$ poldek -n home
Uwagi
Wszystkie pakiety PLD są przygotowane do zbudowania w środowisku normalnego użytkownika (bez specjalnych przywilejów) i z powodu ewentualnego zagrożenia bezpieczeństwa nigdy nie powinieneś używać konta root do budowy tych pakietów. Miej na uwadze, że niewłaściwie działający skrypt ma pełne prawo do zapisu w twoim systemie plików i może coś uszkodzić. Jest to szczególnie istotne przy pracy z własnymi plikami spec
, ponieważ niewielki błąd może cię kosztować godziny czy dni pracy.