当你处理一个大项目而你需要为基于RHEL的Linux发行版创建RPM包时,将软件稀疏到RPM subpackages通常很方便(例如: -client , -server , -devel , -debuginfo 等)。在这种情况下,您可以使用唯一的规范文件获取包含项目不同部分的多个包。
我想知道标准Python打包模块( setuptools 或 distutils )是否支持此功能,以便从一个项目构建多个不同的rpm包。 我想我的 setup.py 中的内容应该与 spec 文件的这一部分相关联:
%package server
%package client
答案 0 :(得分:1)
不,distutils及其衍生品不支持这一点。你将有两个代码库,每个代码库都有一个setup.py脚本,生成两组不同的sdists / wheels / RPMs。或者您可以拥有一个存储库,例如setup_client.py和setup_server.py脚本(包含不同的包名和要打包的文件列表),但这种情况不太常见。
当我们开发distutils2时,TarekZiadé写了pypi2rpm来改进distutils中提供的bdist_rpm命令。最近没有开发,可能是因为它提供了他的团队需要的功能,但是你可以联系他,看看他是否接受了拉动请求,增加了对子包的支持。