Sekcja %files
Sekcja %files służy do określenia jakie pliki mają wchodzić w skład pakietu, jakie mają mieć uprawnienia, właścicieli, grupy itp. W sekcji tej mogą występować następujące makra:
%defattr(fileperm, owner, group, dirperm)
Makro %defattr służy do określenia domyślnych właścicieli/grup i praw dostępu dla plików i katalogów. Makro to powinno (przynajmniej w pakietach dla PLD) znajdować się na samym początku sekcji %files i wyglądać następująco:
%defattr(644, root, root, 755)
Oznacza to, że domyślnie wszystkie pliki i katalogi będą miały właściciela root i grupę root oraz domyślne uprawnienia - 644 dla plików i 755 dla katalogów.
%attr(perm, owner, group) < pliki >
Makro %attr służy do ustawienia plikowi/katalogowi innych praw dostępu niż to zostało określone makrem %defattr. Jeżeli mamy na przykład w pakiecie pliki binarne to musimy im nadać prawa 755. Robimy to w następujący sposób:
%attr(755, root, root) /usr/bin/*
W ten sposób wszystkie pliki pakietu, które znajdą się w /usr/bin będą miały prawa dostępu 755. Innym przykładem użycia makra %attr jest zmiana grupy:
%attr(644, root, floppy) /dev/fd*
%doc < pliki >
Makro %doc służy do zaznaczenia, że dane pliki są dokumentacją programu. Pliki poprzedzone makrem %dir będą się znajdować w katalogu /usr/doc/%{name}-%{version} i nie będą instalowane jeżeli przy instalacji pakietu dodamy opcję --excludedocs. Makrem tym powinny być oznaczone pliki typu README czy ChangeLog oraz wszelka dokumentacja. Nie powinno się tu jednak wymieniać pliku zawierającego treść licencji (zazwyczaj COPYING) jeżeli jest to jedna z powszechnie stosowanych licencji jak (L)GPL czy BSD.
%dir
Makro %dir służy do zaznaczenia, że dany katalog należy do pakietu, ale pliki w nim zawarte już nie. Jeżeli chcemy, żeby cały katalog wraz z zawartością należał do pakietu to po prostu piszemy:
/nasz/katalog
Jeżeli natomiast chcemy, by zawartość katalogu należała do pakietu, ale sam katalog nie - wtedy piszemy:
/nasz/katalog/*
%config[noreplace | missingok] < plik >
Makro %config pozwala zaznaczyć, że dany plik jest plikiem konfiguracyjnym programu i ma być inaczej traktowany. Plik oznaczony tym makrem nie jest usuwany przy deinstalacji pakietu. Makro %config może mieć dodatkowe parametry:
noreplace
Parametr noreplace powoduje, że plik nie będzie podmieniany na nową wersję w trakcie instalowania nowej wersji pakietu, a odpowiadający mu plik z nowej wersji będzie zachowany jako plik.newrpm.
missingok
Parametr missingok oznacza, że plik może zostać skasowany i jego brak nie będzie zgłaszany w trakcie weryfikacji pakietu. Przykładem użycia są pliki wmconfig.
%verify([not] < md5 | size | link | user | group | mtime | mode >
Za pomocą makra %verify możemy określić jakie właściwości pliku mają być sprawdzane w trakcie weryfikacji pakietu. Możliwe właściwości to:
md5
Sprawdzana ma być suma kontrolna md5 pliku.
size
Sprawdzana ma być wielkość pliku.
link
Sprawdzane ma być czy plik jest linkiem i do jakiej lokalizacji wskazuje.
user
Sprawdzany ma być właściciel pliku.
group
Sprawdzana ma być grupa pliku.
mtime
Sprawdzany ma być czas ostatniej modyfikacji pliku.
mode
Sprawdzane mają być prawa dostępu do pliku.
Przed tymi parametrami można wstawić parametr not, który spowoduje, że nabiorą one przeciwnego znaczenia.
%ghost < plik >
Makrem %ghost możemy zaznaczyć, że w pliku będą przechowywane logi, a co za tym idzie plik będzie zmieniał soją wielkość, sumę kontrolną, czas ostaniej modyfikacji jak również może być linkiem do innej lokalizacji i nie powinien być zamazywany przy instalacji nowej wersji pakietu. Jak nietrudno się domyślić makro %ghost jest po prostu skróconym zapisem kombinacji makr %config i %verify z odpowiednimi parametrami, a mianowicie:
%config(noreplace) %verify(not md5 mtime link size) < plik >
%lang(język)
Dzięki %lang może zaoszczędzić miesce na dysku instalując materiały tylko w interesujących nas językach. Jeżeli mamy na przykład plik .mo po angielsku i polsku to w sekcji %files powinniśmy wpisać:
%lang(en) /usr/share/locale/en/LC_MESSAGES/pakiet.mo
%lang(pl) /usr/share/locale/pl/LC_MESSAGES/pakiet.mo
Dzięki temu jeżli nie znamy angielskiego, a mamy mało miejsca na dysku możemy zainstalować tylko polską wersję pliku .mo.

Dalej | Cofnij | Do góry | Spis treści