编译和构build多个发行版/平台的Linux软件包

我的公司有一个用C编写的软件产品,用于Linux平台,使用autotools构build,并通过二进制包进行分发。 为了创build二进制文件,我们首先生成一个源RPM,然后从SRPM编译源文件。

目前我们只为64位Fedora 10提供RPM软件包,但是我们希望开始为多个Linux发行版提供软件包 – 32位和64位,以及每个发行版的可能不同的版本(例如Fedora 11作为Fedora 10)。

我听说为多种Linux风格生成构build的最好方法是使用一个构build服务器,并为要构build的每个包组使用不同的chrooted环境。 有没有人有一个很好的资源,更详细地解释这个,也许有知名的项目,使用这种构build机制的例子,或有一个更好的select来实现相同的目标?

注 – 我非常熟悉如何使用checkinstall之类的工具为不同的发行版以正确的格式生成软件包。 我不太熟悉的是如何在同一台机器上多次编译相同的代码,并最终为每个要打包的发行版提供正确的二进制文件。

我强烈build议您查看openSUSE Build Service。 他们已经在Xen虚拟服务器中设置了各种各样的发行版和体系结构,并且支持各种各样的软件包,包括RPM和DEB格式。 它会节省大量的时间和麻烦,自己设置每个服务器,更不用说花费时间来获得所有的包含和构build权。

http://en.opensuse.org/Build_Service

编辑:作为一个便笺,如果你有安全问题,你可以下载代码,并在你自己的服务器上build立一个OBS而不是使用公共的。

如果您使用单一的安装程序进行分析,请查看http://autopackage.org和http://zero-install.sourceforge.net/