python - 修复 rpm/setuptools 打包的权限

标签 python packaging setuptools rpm

我有一个项目需要安装后 Hook 才能进行部署。我的方法是使用setuptools生成框架rpm规范文件并tar源文件。

问题是我不知道如何用这种方法控制权限。规范文件如下所示:

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

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

效果相当好:所有文件都设置为适当的用户和权限。但目录没有设置属性。我不知道这是否是一个问题,但它看起来确实很奇怪:所有目录都由具有 755 权限的 root 拥有。有谁知道一种好的(合理标准的)方法来使目录归用户所有?我问这个问题是因为我的公司倾向于打包将在特定于应用程序的角色帐户下部署的应用程序。当我使用 setuptools 将结果放入站点包中时,.pyc 文件将被复制。但如果我想在路径之外创建一个配置文件目录,这似乎是一个很好的解决方法。

最佳答案

%defattr(755,%{user},%{user})

该行设置所有文件的默认权限、用户和组所有权。您可以使用以下内容覆盖默认值:

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

如果您希望默认值由 root 以外的用户拥有,那么您可能需要在规范顶部定义“user”宏:

%define user myusername

关于python - 修复 rpm/setuptools 打包的权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1402224/

相关文章:

python - 检查点是否在多边形内

php - 脚本语言如何使用套接字?

java - 如何获取与依赖 jar 捆绑在一起的可执行 javafx jar?

python - 是否有 `setup.cfg` 的完整文档?

python - 如何导出以包含所有依赖项的方式开发的 python 包,以便在另一台机器上进行离线安装?

gcc - 删除 Cython 中的编译参数

python 请求 - 403 禁止

python - 如何通过回调更新 PyQt 中的散点图?

python - 在 setup.cfg 中设置 basedirlist 并在 make 中设置 PREFIX 指向 virtualenv

python - 如何更改 distutils 的输出目录?