У меня есть проект, который требует установки после установки крюков для развертывания. Мой метод состоит в том, чтобы использовать setuptools для генерации файла спецификации rpm скелета и tar исходных файлов.Fix permissions для rpm/setuptools упаковка
Проблема в том, что я не знаю, как управлять разрешениями с помощью этого метода. Файл спецификации выглядит следующим образом:
%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
копируются. Но если я хочу создать директорию с конфигурационным файлом с пути, кажется, что это хорошая работа.
Уведомление о стороне:% файлов -f INSTALLED_FILES обычно считается плохой практикой. Таким образом вы получите ненадежные и непредсказуемые каталоги rpm. Действительно, нетрудно вручную перечислить установленные dirs/файлы для пакета python (так как вам не нужно перечислять каждый файл отдельно), но это упрощает обслуживание и обновления и обеспечивает более предсказуемые результаты. – abbot