我的公司有一个用C语言编写的
Linux软件产品,用autotools构建并通过二进制包分发.要创建二进制文件,我们首先生成源RPM,然后从SRPM编译源代码.
目前我们只提供64位Fedora 10的RPM软件包,但是我们想开始为多个Linux发行版提供软件包 – 32位和64位 – 以及每个发行版的不同版本(例如Fedora 11)作为Fedora 10).
我听说为多种Linux风格生成构建的最佳方法是使用单个构建服务器,并为要构建的每个软件包使用不同的chrooted环境.有没有人有一个很好的资源可以更详细地解释这一点,也许有使用这种构建机制的众所周知的项目的例子,或者有更好的替代方案来实现相同的目标?
注意 – 我非常熟悉如何使用checkinstall等工具为不同的发行版生成正确格式的包.我不太熟悉的是如何在同一台机器上多次编译相同的代码,并为每个我要打包的发行版找到正确的二进制文件.
解决方法
我强烈建议您查看openSUSE Build Service.他们拥有在Xen虚拟服务器中设置的各种发行版和体系结构,并且支持各种软件包,包括RPM和DEB格式.它将节省您的时间和麻烦,自己设置每个服务器,更不用说获得所有包含和构建依赖的时间.
http://en.opensuse.org/Build_Service
编辑:作为旁注,如果您有安全问题,可以下载代码并在自己的服务器上设置OBS,而不是使用公共服务器.