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
Last revision Both sides next revision
pl:developingpld:builderscript [2007-05-09 20:58]
michaloo
pl:developingpld:builderscript [2009-07-01 22:18]
qwiat cosmetics
Line 1: Line 1:
 +/* page was renamed from michaloo/​DevelopingPLDpl/​BuilderScript */
  
  
 ====== 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 ===== 
-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 22: 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 32:
   * ''​-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//: ​
  
  
-===== Przykłady ===== 
-Aby zbudować normalny (binarny) pakiet //​foo//: ​ 
  
 +<​file>​$ builder -bb foo
 +</​file>​
 +Budowanie z automatycznym zainstalowaniem koniecznych pakietów: ​
  
  
-<​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 55: Line 56:
  
  
-<​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 61: Line 62:
  
  
-<​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.txt · Last modified: 2009-10-01 00:11 by qwiat