Zanim zaczniemy pisanie speca koniecznie należy zapoznać się ze wskazówkami dla dewelopera w devel-hints-pl.txt. Zakładam, że przygotowaliśmy już środowisko budowania pakietów i mamy dostęp do CVS-u do zapisu. Przechodzimy do katalogu packages
:
$ cd ~/rpm/packages
tworzymy katalog o unikalnej nazwie (wg. zasad w devel-hints-pl.txt), jednoznacznie określające nazwę aplikacji:
$ mkdir foo
Nic nie stoi na przeszkodzie by stworzyć speca od podstaw, lepiej jednak, zwłaszcza dla początkujących użyć jeden z dostępnych w CVS-ie szablonów. Plik spec musi mieć nazwę zgodną z nazwą katalogu (o którym powyżej). Zaczynamy edycję speca za pomocą dowolnego edytora:
$ cd foo $ vim foo.spec
Kiedy nasz spec nabrał wstępnego kształtu, robimy testowy build:
$ builder -bb -ncs foo
Niemal na pewno pojawią się jakieś błędy (zwłaszcza u początkujących), dlatego teraz praca polega na poprawianiu błędów i kolejnych testowych buildach.
Kiedy pakiet się buduje próbujemy go zainstalować, uruchomić i odinstalować. W takich momentach często wychodzą błędy w zależnościach ( Requires
) i skryptach (%pre
, %post
, %preun
, %postun
). Kiedy wszystko wygląda w porządku, to koniecznie uruchamiamy adapter:
$ ../adapter foo.spec
skrypt pozwoli dostosować speca do reguł panujących w PLD. W tym momencie możemy dodać speca do CVS-u (oraz ewentualne łatki):
$ cd ~/rpm/packages $ cvs add foo $ cd foo $ cvs add foo.spec $ cvs ci
%files
, unikamy jak ognia SUID, jeśli to absolutnie konieczne, używaj SGID i osobnej grupy. %files
, adapter ustawi je za nas. $rpm --showrc
Kompletne zestawienie reguł można znaleźć w dokumencie devel-hints-pl.txt.