Подтвердить что ты не робот

Что означает% defattr в файлах спецификаций RPM?

При создании RPM файлы спецификации RPM имеют директиву %defattr. Я знаю, что он определяет атрибуты по умолчанию для файлов, установленных этим RPM. Если я напишу %defattr, как показано ниже, что это значит?

%defattr(-testuser, testuser)
4b9b3361

Ответ 1

Указанный вами режим недействителен. % defattr принимает четыре аргумента

От http://ftp.rpm.org/max-rpm/s1-rpm-inside-files-list-directives.html#S3-RPM-INSIDE-FLIST-DEFATTR-DIRECTIVE

Директива% defattr

Директива% defattr позволяет устанавливать атрибуты по умолчанию для файлов и директив. % Defattr имеет аналогичный формат директивы% attr:

  • Разрешения по умолчанию или "режим" для файлов.

  • Идентификатор пользователя по умолчанию.

  • Идентификатор группы по умолчанию.

  • Разрешения по умолчанию или "режим" для каталогов.

Директива% attr имеет следующий формат:

% defattr (режим файла, пользователь, группа, режим dir)

Как и в случае% attr, если конкретный атрибут не требуется (обычно потому, что файл установлен с этим атрибут установлен правильно), то этот атрибут может быть заменен на тир. Кроме того, режим каталога может быть ограничен. % defattr имеет тенденцию будет использоваться в верхней части% файлов.

Ответ 2

Чтобы установить разрешения и владельцы в файле спецификации, обратитесь к каталогу, подобному файлу... % defattr будет устанавливать все файлы без% attr (в этом случае rww owner apache group 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