来自Python项目的RPM子包

时间:2014-05-08 12:45:53

标签: python package rpm setuptools distutils

当你处理一个大项目而你需要为基于RHEL的Linux发行版创建RPM包时,将软件稀疏到RPM subpackages通常很方便(例如: -client -server -devel -debuginfo 等)。在这种情况下,您可以使用唯一的规范文件获取包含项目不同部分的多个包。

我想知道标准Python打包模块( setuptools distutils )是否支持此功能,以便从一个项目构建多个不同的rpm包。 我想我的 setup.py 中的内容应该与 spec 文件的这一部分相关联:

%package server
%package client

1 个答案:

答案 0 :(得分:1)

不,distutils及其衍生品不支持这一点。你将有两个代码库,每个代码库都有一个setup.py脚本,生成两组不同的sdists / wheels / RPMs。或者您可以拥有一个存储库,例如setup_client.py和setup_server.py脚本(包含不同的包名和要打包的文件列表),但这种情况不太常见。

当我们开发distutils2时,TarekZiadé写了pypi2rpm来改进distutils中提供的bdist_rpm命令。最近没有开发,可能是因为它提供了他的团队需要的功能,但是你可以联系他,看看他是否接受了拉动请求,增加了对子包的支持。