为多个发行版/平台编译和构建Linux包

我的公司有一个用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,而不是使用公共服务器.

相关文章

在Linux上编写运行C语言程序,经常会遇到程序崩溃、卡死等异...
git使用小结很多人可能和我一样,起初对git是一无所知的。我...
1. 操作系统环境、安装包准备 宿主机:Max OSX 10.10.5 虚拟...
因为业务系统需求,需要对web服务作nginx代理,在不断的尝试...
Linux模块机制浅析 Linux允许用户通过插入模块,实现干预内核...
一、Hadoop HA的Web页面访问 Hadoop开启HA后,会同时存在两个...