9.5.4 Определение атрибутов файлов

Когда пакет установлен, вы можете контролировать атрибуты файлов, так же как и файлов, которые будут включаться в пакет. Эта возможность весьма полезна, так как файлы пакетов, установленных в систему пользователем root вовсе не обязаны принадлежать этому пользователю.

Директива %attr позволяет задавать права на определенный файл. Формат следующий:

%attr(mode, user, group) filename

например:

%attr(0644, root, root) /etc/yp.conf

Этот пример устанавливает права доступа в 644, пользователь и группа - root. Если нет необходимости задавать значение параметра, используется дефис. При этом права будут такими, какие имел файл при сборке. Например:

%attr(-, root, -) /etc/yp.conf

Директивы можно комбинировать в одной строке:

%config %attr(-, root, -) /etc/yp.conf

В качестве разделителей кроме запятых можно также использовать пробелы:

%attr(0700 root root) %dir /var/tux

Для установки атрибутов по умолчанию всех файлов пакета существует директива %defattr :

%files

%defattr(-,root,root)

/usr/X11R6/bin/xtoolwait

/usr/X11R6/man/man1/xtoolwait.*

Эта инструкция позволяет скрыть большой объем работы, требующийся для установки всех атрибутов для каждого файла индивидуально. Именно поэтому %deffatr содержат практически все spec-файлы.

Также есть возможность отметить определенные файлы, как файлы конкретного языка. Это делается с помощью директивы %lang:

%files

%defattr(-,root,root)

%doc FAQ Fixes NewThings complete.tcsh eight-bit.txt tcsh.html

%{_bindir}/tcsh

%{_bindir}/csh

%{_mandir}/*/*

%lang(de) %{_datadir}/locale/de/LC_MESSAGES/tcsh*

%lang(el) %{_datadir}/locale/el/LC_MESSAGES/tcsh*

%lang(en) %{_datadir}/locale/en/LC_MESSAGES/tcsh*

%lang(es) %{_datadir}/locale/es/LC_MESSAGES/tcsh*

%lang(et) %{_datadir}/locale/et/LC_MESSAGES/tcsh*

%lang(fi) %{_datadir}/locale/fi/LC_MESSAGES/tcsh*

%lang(fr) %{_datadir}/locale/fr/LC_MESSAGES/tcsh*

%lang(it) %{_datadir}/locale/it/LC_MESSAGES/tcsh*

%lang(ja) %{_datadir}/locale/ja/LC_MESSAGES/tcsh*

%lang(pl) %{_datadir}/locale/pl/LC_MESSAGES/tcsh*

%lang(ru) %{_datadir}/locale/ru/LC_MESSAGES/tcsh*

%lang(uk) %{_datadir}/locale/uk/LC_MESSAGES/tcsh*

Далее - Верификация секции %files
Назад - Пометка файлов как файлов документации или конфигурационных
Содержание