Что означает%defattr в файлах спецификаций RPM?
При создании RPM файлы спецификации RPM имеют директиву %defattr
, Я знаю, что он определяет атрибуты по умолчанию для файлов, которые установлены этим RPM. Если я напишу %defattr
как ниже, что это значит?
%defattr(-testuser, testuser)
2 ответа
Указанный вами режим недействителен. % defattr принимает четыре аргумента
От http://ftp.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html
Директива% defattr
Директива% defattr позволяет устанавливать атрибуты по умолчанию для файлов и директив. % Defattr имеет формат, аналогичный директиве% attr:
Разрешения по умолчанию или "режим" для файлов.
Идентификатор пользователя по умолчанию.
Идентификатор группы по умолчанию.
Разрешения по умолчанию или "режим" для каталогов.
Директива% attr имеет следующий формат:
%defattr(режим файла, пользователь, группа, режим dir)
Как и в случае% attr, если конкретный атрибут не требуется указывать (обычно потому, что файл установлен с правильно установленным атрибутом), этот атрибут может быть заменен тире. Кроме того, режим каталога может быть опущен. % defattr обычно используется в верхней части% файлов.
Чтобы установить права доступа и права собственности в файле спецификации, обработайте каталог как файл, таким образом... %defattr установит все файлы без%attr (в этом случае владелец apache группы apache и установит для каталогов значение 755).
%files
#%attr(<mode>, <user>, <group>) file
%defattr(644,apache,apache,755)
%attr(-,apache,apache) /var/www/coolapp
%attr(-,apache,apache) /var/www/coolapp/js
%attr(-,apache,apache) /var/www/coolapp/static
/var/www/coolapp/index.html
/var/www/coolapp/__init__.py
/var/www/coolapp/settings.py
/var/www/coolapp/urls.py
/var/www/coolapp/wsgi.py