Build Service

Jump to: navigation, search
Geeko openSUSE编译服务是一个开放的和完整的分发开发平台,它为开发未来的基于openSUSE的分发提供了基本架构。 它也为软件开发者们提供了一个工具来编译、发行和发布他们的为广大用户使用的软件,这包括创建他们自己的基于openSUSE的支持大量硬件体系结构的Linux发行版本。

特点

在上面的介绍部分我们已经提到编译服务是一个完整的分发开发平台,为开发未来的基于openSUSE的分发提供了基本架构。

它也具有为其它Linux发行提供编译和打包的功能,像Fedora、Debian、Ubuntu等。

openSUSE的用户能够容易的通过web界面 http://software.opensuse.org/ 来浏览并下载最新的软件包。

开放的接口允许外部服务(如SourceForge)和web页面与编译服务进行交互并使用它所提供的接口。

更好的是已经获取用户/信任管理的任何人都可以访问编译服务,并能创建更多的构建目标(如LSB、Xen镜像)。

优势

对于开发者

  • 不在需要不同硬件平台的"编译农场"来为不同的体系结构而构建包。
  • 生产更好的软件:一些软件项目仍使用16位的程序,对于为什么他们的代码不能在32位或64位平台上编译而感到惊讶。
  • 自动解析对其它包的依赖关系。如果一个包依赖另一个包,那么当依赖的包重新构建时这个包也会被自动重新构建。
  • 链接其它项目:从其它的项目中补丁能够在最新的包中测试。例如:一个开发人员有一个Amarok的补丁,并想在定义好的环境中测试这个补丁。他创建了一个到KDE项目的链接,并使用它来作为自己的测试环境。结果是:当KDE项目开始一次新的构建时,他的Amarok的补丁版本将也被重新构建。
  • 为多种Linux发行版本构建您的软件。目前,发行版本支持列表如下:
    • SUSE
      • openSUSE 11.1
      • openSUSE 11.0
      • openSUSE 10.3
      • openSUSE 10.2
      • SUSE Linux 10.1
      • SUSE Linux Enterprise 10
      • SUSE Linux Enterprise 9
      • openSUSE Factory
    • Debian
      • Debian Etch
    • Red Hat
      • Fedora 10
      • Fedora 9
      • Fedora 8
      • Fedora 7
      • Fedora 6 + Extras
      • Red Hat Enterprise Linux 5
      • Red Hat Enterprise Linux 4
      • CentOS 5
    • Mandriva Linux
      • Mandriva 2009
      • Mandriva 2008
      • Mandriva 2007
      • Mandriva 2006
    • Ubuntu (包括 Ubuntu, Kubuntu, Xubuntu, 等)
      • Ubuntu 8.10
      • Ubuntu 8.04
      • Ubuntu 7.10
      • Ubuntu 7.04
      • Ubuntu 6.06

对于嵌入式开发人员

  • 为其他处理器平台构建您的软件。目前发行版本支持列表如下:
    • openSUSE
      • openSUSE 10.2 @ powerpc
      • openSUSE 10.3 @ powerpc
      • openSUSE 11.0 @ powerpc
    • Debian
      • Debian Etch @ arm4l, powerpc
      • Debian Lenny @ arm4l, arm5el, powerpc
      • Debian Sid @ arm4l, arm5el, powerpc
    • Fedora (正如Fedora Linux UK ftp server所提供的)
      • Fedora 8 @ arm5el, powerpc
      • Fedora 9 @ powerpc
    • Ubuntu (正如 Mojo Project所移植的)
      • Ubuntu 7.10 @ arm5el
      • Ubuntu 8.04 @ arm5el, arm7el (包括带vfp和不带vfp的版本)
      • Ubuntu 8.10 @ arm5el
      • Ubuntu 9.04 @ arm7el (完全alpha 版ubuntu)

支持Qemu模拟器交叉开发的OBS版本目前保留在OBS开发者版本中。代码将包括在下一版本的官方正式版OBS。更多技术信息请参阅

交叉开发 概念和例子。对于使用QEMU,直至ARMv7 EABI和VFPv3都是可用的。ARM调度表中包含了三种类型:armv4l, armv5el 和 armv7el。

对于PowerPC构架还有另一种实现方式。PowerPC在服务器构架中支持良好,并且OBS同样支持使用PowerPC机上的本地local Builds和worker Builds。限于安全因素,在公众OBS的PowerPC构建器无法供公众使用。如需了解具体的可用与否请参阅: OBS 路线图 尽管如此,PowerPC现在仍然能够在单独OBS的安装中使用,如果您有一台为OBS编译器而运行Linux的PowerPC的话,或者本地编译过程(局限性的OBS workers, local Builds)。

对于用户

  • 总是能获取到他们所分发的软件的最新版本。通过使用编译服务的信任关系,用户能够声明“我信任项目xy”然后只从这个项目中安装包。
  • 为老版本的分发获取升级包。(像为SL 10.0获取一个新的KDE 3.5.3)
  • 在不同的分发之间更统一。来自于编译服务的包能够将人们结合在一起来考虑“为什么他们这么做?为什么他们使用的这个目录?-我也想为我自己的分发这么做。”(但是这些都是将来的事情... :-)

如何找到并安装包?看这。

对于分发者

  • 编译服务能够容易地创建完整的分发或在许多地方都使用的变更后的镜像。KIWI的第一个版本已经发布,用于创建从网络启动的镜像或用于Xen和VMware的镜像。

路线图

我们有一个路线图,我们也维护一个较小变更日志

如何使用它

可以通过多种方式来使用编译服务,如借助于Web界面命令行工具或使用API的任何工具。需要制作包的人员也应该阅读如何交叉分发包 编译服务教程

帐号目前只给那些有经验的并大家都知道的打包人员,他们能够处理编译服务的最初状态。如要获取一个帐号,请阅读在编译服务教程中的登录部分。您将会被问及您想用编译服务做什么,然后过些天您的帐号将会被启用或不被启用。

编译服务技巧上可以发现一些技巧。

开源项目夏令营

有几个Google开源项目夏令营的项目是以openSUSE编译服务为背景而进行着:

编译服务源代码

SVN 仓库

编译服务工具的源代码和文档在forge.novell.com站点上可以找到。 这个仓库包含了客户端工具和服务端的源代码。

目前他们的SVN服务器好像有些问题,直到问题解决才可以检出代码。

安装包

安装包在编译服务器中,但是安装包仍没有真正的生产出来。在他们能够被公开使用之前仍有很多工作需要做。从openSUSE:/Tools repository可以找到这个包。以obs-*来查找包(openSUSE编译服务)。

如何贡献

与多数的开源项目类似,您可以贡献您编写的补丁或您计划开发的一些想法。那些己被证明能正确运行的代码的提交人将会有对SVN仓库的写访问权限。

目前您也可以参加Google开源夏令营中的openSUSE编译服务项目。参见Summer of Code 2006页面来了解详细信息和项目的想法。

文档

  • 您能够在 新闻 页面上获取最新的信息。
  • 我们在FOSDEM提供了2个关于编译服务的谈话。第一个谈话概述了编译服务的想法和架构。第二个谈话详细描述了项目的模型并解释了如何构建多个分发,包括openSUSE、Fedora、Mandriva和Debian。
  • 一篇重要的文档是API。这个API提供一个简单通用的接口来与编译服务器交互。您可以使用它来集成编译服务访问的功能到您的工具中,如提交代码更新、检查您的项目的当前状态或做些又酷又与众不同的东东。
  • 您不喜欢我们的Web界面或命令行工具?您或者改善它或者编写您一个自己满意的。它们俩的源代码也能够从工厂仓库中获取。

联系方式

请订阅opensuse-buildservice邮件列表 (存档)。非常欢迎您的反馈信息,尤其是补丁、新的工具和新的想法。

我们也有一些人在freenode的#openSUSE-buildservice频道上泡着。

您的openSUSE编译服务团队

Web客户端

命令行工具

编译服务当前有两个命令行工具。与它们相关的描述在:

另外,如果您是编译服务的开发者,您也许对如何借助curl使用编译服务的restAPI感兴趣