来自Python项目的RPM子包

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

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

%package server
%package client

回答(1)

2 years ago

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

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