轻松为多个发行版和平台构建软件

2010 年 9 月 20 日 | Jos Poortvliet | 无许可

在短短一个月多一点的时间里,openSUSE 2010 年会议将以“跨越国界的协作”为主题拉开帷幕。本文重点介绍了本次会议的主要主题之一——一项真正跨越国界的构建服务技术。这项技术帮助开发者快速轻松地将软件定位到许多不同的 Linux 发行版,而 openSUSE 会议为获取“内部信息”和分享想法以加速软件打包过程提供了绝佳的机会。请继续阅读,了解有关构建服务的更多信息以及它能为您做什么!

分发软件的挑战——以及解决方案

Linux 软件开发者面临的挑战之一是需要将软件编译为在各种 Linux 平台上运行。通常,这意味着您需要拥有您想要支持的每个发行版(在多个版本中!),并为每个平台构建二进制软件包——这是一个耗时费力的过程。虽然有一些标准,例如 Linux 标准库,应该减轻这种情况,但您通常仍然会遇到依赖项的非标准名称以及许多其他问题。现在有一个解决方案:构建服务。

构建服务在服务器上运行,并通过为需要构建的每个软件包启动一个干净的虚拟化操作系统来构建软件包。构建服务将自动安装构建文件中指定的所需依赖项到虚拟镜像中并构建软件包。如果发生任何错误,它将向打包者报告这些错误。在 build.opensuse.org 上运行的 openSUSE 构建服务目前支持 Ubuntu、Red Hat、Mandriva、CentOS、Debian、SLE 和 Fedora,以及 openSUSE。所有这些都可以完全通过 Web 界面控制——甚至支持 Internet Explorer。openSUSE 构建服务由 NovellAMDIP ExchangeB1 Systems 赞助,并构建了来自 25,000 名用户在 15,000 个不同项目上工作的约 100,000 个软件包——这需要整个大型机群才能完成!

平台和发行版支持

当前支持的 Linux 发行版可以在 此处 找到,包括最新的三个 openSUSE 版本和 Factory、最新的三个 SLES 版本、最新的三个 Fedora 版本、最新的两个 Red Hat 版本和最新的 CentOS 版本;Debian Stable、Testing 和 Unstable;最新的三个 Mandriva 版本和最新的三个 Ubuntu 版本以及最新的长期支持 Ubuntu 版本

构建服务支持的架构和平台范围令人印象深刻,可以追溯到 32 位 PowerPC 处理器,同时正在不断开发 ARM 支持。Ubuntu 的 ARM、Debian 的 ARM 以及 PowerPC 和 openSUSE 的 PowerPC 版本都受支持。对于 x86,将为所有受支持的发行版构建 32 位和 64 位软件包。从技术上讲,Windows 和 MacOS X 的支持也是可能的,开发者欢迎任何对为这些操作系统添加支持感兴趣的人。

openSUSE 构建服务旨在“与发行版无关”——可以通过其他发行版通过用户友好的 Web 界面或通过基于 Python 的类似子版本命令行客户端 OSC 访问。但是,此过程仍在开发中,在标准发行版软件包与 OSC 软件包之间的冲突方面仍存在一些问题需要解决,因此在目前阶段,它更适合经验丰富的用户。对于 openSUSE,OSC 支持显然非常出色,并且通过易于使用的 Web 界面,可以完全构建 Linux 软件包,用于所有这些发行版和平台,即使在 Windows 或 MacOS X 工作站后面也是如此!

开发和部署

如果您只需要一个软件包可供尽可能多的用户使用,那么构建服务就是您的理想选择。Petr Uzel 在会议上主持了一个关于“有效打包”的会议,供那些希望更有效地使用它的人学习,当然,openSUSE wiki 上的 构建服务门户 为您提供了开始打包所需的所有信息。

即使拥有良好的文档和一些出色的会议,手动创建新软件包对于新的或没有经验的打包者来说也是一项复杂的任务。多发行版软件包即使对于经验丰富的打包者来说也很繁琐。幸运的是,许多必要的任务都可以自动化。openSUSE 开发者 Lubos Lunak 创建了一个工具,可以自动为多个发行版创建软件包。构建要求可以从源代码 tarball 中找到,就像已安装的文件一样,因此该工具可以处理相当复杂的源代码 tarball 以创建新软件包。在会议上,Lubos 将演示他的工具并要求提供输入和帮助以改进它。

Adrian Schröter 演示的会议主题是“使用 OBS 轻松维护”,他介绍了 OBS 中存在的用于准备、质量保证和发布 openSUSE 发行版或任何其他项目的维护更新的功能。OBS 是一种协作工具,允许创建项目和组及其相关的维护者。这样,开发人员就可以准备更改到分支项目,然后请求将更改合并回去。OBS 还自动解析对其他软件包的依赖关系。如果一个软件包依赖于另一个软件包,则当依赖的软件包发生更改时,该软件包将自动触发重建。Adrian 还会讨论可以在 OBS 路线图 中看到的即将到来的更改。

除了支持初始构建和测试外,构建服务还通过其 集成的 KIWI 镜像创建系统 促进磁盘镜像的创建。这对于部署各种各样的硬件配置和虚拟机的管理员来说是一个特别有用的工具。

构建服务存储库可以轻松添加到您的 SUSE Studio 项目中,从而允许您构建自定义操作系统为 live USB、CD 或虚拟镜像——同样完全通过 Web 浏览器完成。Will Stephenson 将在会议上发表题为“使用 OBS 和 SUSE Studio 将应用程序作为 Live CD 传播”的演讲,解释如何做到这一点。作为应用程序开发者,这种组合可能非常强大:您在构建服务上创建一个软件包(新版本 = 仅上传新的 tarball 并从 Web 界面快速调整 spec 文件)——几分钟之内,您就有了来自 SUSE Studio 的新(一组)镜像。这些在各种虚拟机中运行,使您的客户能够轻松部署!将 SUSE Studio 与 OBS 结合使用,您可以点击鼠标部署应用程序到虚拟镜像,直接到 Amazon 等云服务——使虚拟化设备变得易如反掌。Berthold Gunreben 将在题为“爱丽丝梦游仙境”的演讲中讨论 openSUSE 的虚拟化,包括如何有效地管理虚拟客户和 DRDB 存储解决方案。

上游应用程序

SUSE Studio 并不是构建服务软件包集成的唯一位置。OpenDesktop.org 网站系列,包括 gtk-apps.orgkde-apps.org,都提供构建服务集成。例如,请参阅 Lucky Backup,它利用了这一点——从而为每个主要发行版提供软件包,而不是晦涩的 tarball 或仅支持少数平台。进一步支持 openSUSE 会议“跨越国界协作”的主题,OpenDesktop.org 开发的 API 被 MeeGo 团队用于他们自己的应用商店技术!此外,正如 Qt Software 的 Knut Irvin 将在会议上讨论的那样,诺基亚已将其 OVI 商店 技术与 OBS 结合起来,因此未来的 MeeGo 用户可以使用 OVI 商店获取他们的软件——免费和付费应用程序。

与此同时,build.opensuse.org 上的每个项目都可以通过 openSUSE 的一键安装技术轻松地被用户获取。只需访问 software.opensuse.org,搜索并单击一键安装链接即可安装完全为您的特定系统构建的软件包!

构建服务的使用

构建服务是一个完全开源的服务器解决方案;用户可以下载源代码并创建一个本地托管的构建服务项目,以根据自己的要求定制——特别是如果他们正在为不受支持的平台开发。几个软件项目已经采用了这种解决方案,包括 Linux 基金会在开发 MeeGo 时,协作开源项目旨在为上网本和移动设备开发新的 GUI。

本地托管的构建服务为大型机构提供灵活且可扩展的解决方案。例如,不列颠哥伦比亚大学使用其本地构建服务来定制软件包,以满足研究人员和教职员工的独特需求。该服务允许他们有效地在整个校园内推出预配置的服务器和桌面。埃尔兰根-纽伦堡大学自 2007 年以来一直利用 OBS 来支持其校园中使用的许多架构和平台。汉诺威大学使用 OBS 来支持其 LiRE 平台,利用 交叉开发 为各种架构构建软件包。

linux-administrator 项目 使用本地设置的 openSUSE 构建服务来创建各种项目的软件包,例如 VHCSstresslinux,以及 Stylite GmbH 使用本地 openSUSE 构建服务来测试构建 EGroupware 及其商业产品的软件包。但是,他们使用公共 build.opensuse.org 服务器来分发他们的软件包。

蜥蜴在工作! MeeGo 项目是由诺基亚、英特尔和在 Linux 基金会伞下的快速增长的志愿者社区合作努力,也采用 OBS 安装来构建其产品。MeeGo 是英特尔创新 Moblin 项目和诺基亚高端智能手机操作系统 Maemo 的结合。该项目的目标是创建一个专为上网本/入门级台式机、手持计算和通信设备、车载信息娱乐设备、连接电视和媒体手机等平台设计的操作系统。换句话说,小尺寸设备,具有有限的计算能力和屏幕空间。MeeGo 的 构建基础设施 的核心是由 openSUSE 构建服务形成的。Linux 基金会已专门安排了几名工程师与 openSUSE 开发者一起致力于改进构建服务。

其他使用构建服务的社区和公司包括 VLC 团队、OpenXchangeDell、Cray 以及许多其他公司。

结论

openSUSE 构建服务是一个集成的、高效且功能强大的打包瑞士军刀。 像许多这样的工具一样,它可能看起来很复杂,但当你了解如何使用它时,它会出奇地简单。 Web 服务具有相当直观的界面,详细的在线文档可以从 这里 开始找到。 如果您正在考虑在您的开发项目中利用构建服务,那么 openSUSE 大会的 OBS 专题活动是进行指导游览的绝佳机会。 您将有机会与 OBS 的专家交流,从而受益于他们的智慧并找到您所寻求的答案! 了解 OBS 如何简化您的项目,从开发到打包、维护和分发。 您不仅可以改善工作流程并减轻压力,而且当用户询问“此软件能在我的 Linux 发行版上运行吗?”,您终于可以自信地说“是的!”

作者: Helen South

分类: 构建服务 活动

标签

分享此帖子