User Tools

Site Tools


pl:developingpld:builderscript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
pl:developingpld:builderscript [2008-04-21 02:47]
qwiat merged from en version
pl:developingpld:builderscript [2009-10-01 00:11] (current)
qwiat small update
Line 3: Line 3:
  
 ====== Skrypt builder ====== ====== Skrypt builder ======
 +Skrypt jest dostarczany razem z pakietem //​rpm-build-tools//,​ poza tym jest zapisywany dodatkowo w katalogu //​~/​rpm/​packages//​ - przy operacji [[:​pl:​DevelopingPLD:​PreparingWorkingEnvironment|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 ===== 
-Zanim zaczniesz upewnij się, że twoje [[:​DevelopingPLD:​PreparingWorkingEnvironment|środowisko budowania]] jest przygotowane. ​ 
  
-Jako że skrypt znajduje się w podkatalogu //​rpm/​SPECS//,​ na początku musisz zmienić aktualną ścieżkę: ​ 
  
 +===== Użycie =====
 +Teraz możesz wykonać ''/​usr/​bin/​builder'',​ aby zobaczyć listę możliwych parametrów: ​
  
  
-<​file>​$ cd 
-$ cd rpm/SPECS 
-</​file>​ 
-Teraz możesz wykonać ''​./​builder''​ (pamiętaj o kropce i ukośniku na początku) aby zobaczyć listę możliwych parametrów: ​ 
  
- +<​file>​$ builder
- +
-<​file>​$ ​./builder+
 </​file>​ </​file>​
 Ogólna składnia wygląda tak:  Ogólna składnia wygląda tak: 
Line 25: Line 20:
  
  
-<​file>​$ ​./builder [opcje] pakiet[.spec]+<​file>​$ builder [opcje] pakiet[.spec]
 </​file>​ </​file>​
 Rozszerzenie ''​.spec''​ jest opcjonalne, skrypt doda je w razie potrzeby. ​ Rozszerzenie ''​.spec''​ jest opcjonalne, skrypt doda je w razie potrzeby. ​
Line 34: Line 29:
   * ''​-bb''​ aby zbudować tylko pakiet binarny (pomija tworzenie pakietu źródłowego RPM)    * ''​-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) ​   * ''​-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) ​   * ''​-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 pliku ''​spec'' ​   * ''​-U''​ aby skompletować wszystkie źródła i uaktualnić ich hashe MD5 w pliku ''​spec'' ​
   * ''​-5''​ aby uaktualnić hashe MD5 używając lokalnych źródeł ​   * ''​-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)  +  * ''​--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'' ​aby zebrać zależne wymagania pakietu, zaleca się instalację ''​rpm-getdeps''​ dla lepszego rezultatu  +  * ''​-R'' ​automatycznie instaluje pakiety, które są konieczne do budowania, zaleca się instalację ''​rpm-getdeps''​ dla lepszego rezultatu  
-''​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/​SOURCES//​). 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 procesuJeż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ć+  ​* ​''​--target ARCH''​ pozwala ​budować pakiety dla innej architekturyniż architektura systemu 
 +Pełny zestaw opcji jest dostępny po uruchomieniu ​programu ​bez argumentów
  
-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//​. ​ 
  
-**Uwaga:** 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. ​ 
  
 +===== Przykłady =====
 +Typowe budowanie (binarnego) pakietu //foo// z HEAD CVS-u: ​
  
  
-===== Przykłady ===== 
-Aby zbudować normalny (binarny) pakiet //​foo//: ​ 
  
 +<​file>​$ builder -bb foo
 +</​file>​
 +j.w. tyle, że z automatycznym zainstalowaniem koniecznych pakietów (z [[:​BuildRequires|BuildRequires]]): ​
  
  
-<​file>​$ ​./builder -bb -bc -R foo+ 
 +<​file>​$ builder -bb -R foo
 </​file>​ </​file>​
 Aby wykonać pełną budowę pakietu, który aktualnie rozwijany jest w gałęzi //​DEVEL//: ​ Aby wykonać pełną budowę pakietu, który aktualnie rozwijany jest w gałęzi //​DEVEL//: ​
Line 58: Line 57:
  
  
-<​file>​$ ​./builder -bc -r DEVEL foo+<​file>​$ builder -bc -r DEVEL foo
 </​file>​ </​file>​
 Aby zaktualizować hashe MD5 w powyższym pliku ''​spec'': ​ Aby zaktualizować hashe MD5 w powyższym pliku ''​spec'': ​
Line 64: Line 63:
  
  
-<​file>​$ ​./builder -r DEVEL -U foo+<​file>​$ builder -r DEVEL -U foo
 </​file>​ </​file>​
 +Instalacja dla wybranej architektury: ​
 +
 +
 +
 +<​file>​$ builder --target i486 foo
 +</​file>​
 +Budowanie pakietu foo z ustawieniem opcji "​something"​ i wyłączeniem "​bar": ​
 +
 +
 +
 +<​file>​$ builder --with something --without bar foo
 +</​file>​
 +
 +
 +===== 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//: ​
 +
 +<​file>​$ poldek -n home
 +</​file>​
 +
 +
 +===== 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. ​
 +
  
pl/developingpld/builderscript.1208738838.txt.gz · Last modified: 2008-04-21 02:47 by qwiat