Исправьте разрешения для упаковки rpm / setuptools - PullRequest
1 голос
/ 10 сентября 2009

У меня есть проект, который требует послеустановочных хуков для развертывания. Мой метод состоит в том, чтобы использовать setuptools для создания файла спецификации rpm для скелета и архивирования исходных файлов.

Проблема в том, что я не знаю, как управлять разрешениями с помощью этого метода. Файл спецификации выглядит так:

%install
python setup.py install --single-version-externally-managed --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES

%files -f INSTALLED_FILES
%defattr(755,%{user},%{user})

Это работает достаточно хорошо: все файлы настроены для соответствующего пользователя и прав доступа. Но каталоги не имеют атрибутов, установленных на них. Я не могу сказать, является ли это проблемой, но это кажется странным: все каталоги принадлежат пользователю root с разрешениями 755. Кто-нибудь знает хороший (достаточно стандартный) способ сделать каталоги, принадлежащие user? Я спрашиваю, потому что моя компания предпочитает упаковывать приложения, которые будут развернуты под учетной записью роли конкретного приложения. Когда я использую setuptools, чтобы поместить результаты в пакеты сайтов, .pyc файлы копируются. Но если я хочу создать каталог с конфигурационным файлом по пути, это неплохое решение.

1 Ответ

3 голосов
/ 21 октября 2009

% defattr (755,% {пользователь}, {%} пользователя) * * тысяча два

В этой строке задаются разрешения по умолчанию, права пользователя и группы для всех файлов. Вы можете переопределить значение по умолчанию что-то вроде:

%attr(644, <username>, <username>) </path/to/file>

Если вы хотите, чтобы по умолчанию владел не пользователь root, тогда вам, вероятно, нужно определить макрос 'user' вверху спецификации:

%define user myusername
...