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