[FrontPage] [TitleIndex] [WordIndex

This is a read-only archived version of wiki.centos.org

现时向 CBS 提交建设要求的流程,是在开发者的工作目录内置立一个源码 RPM,然后提交给建设系统。开发者必须拥有一个有效的 CBS 帐户,并在他们的工作台上安装了客端工具(见 zh/SIGGuide#CBSAccount)。

创建源码 RPM

暂时仍支持并供 --scratch 建设之用,但利用 git.centos.org 进行建设才是正确做法

[bstinson@localhost new-package]$ rpmbuild --define "%_topdir `pwd`" -bs SPECS/new-package.spec

绕道描述标签及目标

利用 CBS 进行建设时,我们应该知道往那里提交源码,及在那里可找到新建的组件。

定义

建设目标

建设目标是根据 CentOS 版本、SIG、项目、项目版本及发行标签而命名的。以 cloud7-openstack-kilo-el7 为例:

SIG

cloud

CentOS 版本

7

项目

openstack

版本

kilo

发行标签

el7

每当有新的标签申请,建设目标便会获配置,而现有的目标已收录于 http://cbs.centos.org/koji/buildtargets

标签

当 SIG 的主席申请新一系列的建设标签时,我们推荐兴趣小组采纳缺省的流程:

[建设] -> cloud7-openstack-kilo-candidate -> cloud7-openstack-kilo-testing -> cloud7-openstack-kilo-release

新组件的建设根目录包括以下软件库:

这样开发者便能依赖基本操作系统的内容来满足组件的要求,或确保所需的版本加上 -candidate 标签(随相关的建设目标获创建,或执行 tag-build 指令来囊括现有的组件)。

进行建设!

新组件:

要是你的组件从未被建设过,请在你的目标标签的组件清单内加上它:

[bstinson@localhost new-package]$ cbs add-pkg --owner=bstinson cloud7-openstack-kilo-candidate new-package
[bstinson@localhost new-package]$ cbs add-pkg --owner=bstinson cloud7-openstack-kilo-testing new-package
[bstinson@localhost new-package]$ cbs add-pkg --owner=bstinson cloud7-openstack-kilo-release new-package

临时建设:

# 提交源码 RPM 作为临时建设
[bstinson@localhost new-package]$ cbs build --scratch cloud7-openstack-kilo-el7 SRPMS/new-package-1.0.1-2.el7.src.rpm

临时建设会出现在 CBS 的网页,而获创建的 RPM 可以从该处下载,但那些组件不会被加进任何 CBS 标签(或这些标签所创建的软件库)。临时建设有助于正式进行标签建设前先行测试。

已标签(正常)建设:

# 提交源码 RPM 作为建设目标
[bstinson@localhost new-package]$ cbs build cloud7-openstack-kilo-el7 SRPMS/new-package-1.0.1-2.el7.src.rpm

已标签的建设完成后,便会加进 -candidate 标签,并出现在建设根目录供依赖它的组件访问。

/!\ 注:CBS 规定组件的 名称-版本-发行 必须是独一无二的。言下之意就是假如有人(甚至另一个 SIG)已创建了 new-package-1.0.1-2.el7,你必须采用该组件,或创建另一个版本

从 git.centos.org 进行建设

与其创建本地的 .src.rpm 组件并上载至 CBS 进行建设,你也可提交指向 git.centos.org 的建设请求(见上文有关 lookaside 及 git push 的步骤)。

你只需调用 cbs build 并指向 git+https://git.centos.org/rpms/<组件名称>.git#<commit_散列>

要是沿用上述有关 centpkg-minimal 组件的样例,我们可以轻易地从 git 的历史取得我们刚推送到 git.centos.org 的 c7-sig-core 分支的 commit 散列:

git log|head -n 1
commit ca63b53c8bde1efc91d55548f194dbecbf457cad

因此当告诉 cbs 建设系统从 git.centos.org 自动访问所有数据时(.spec、修正档及 .<pkg_name>.metadata 内宣告的 lookaside 对象),我们可以如此调用它(根据我们的样例并以 infrastructure7-el7 作为 cbs 标签的目标,因此这视乎你的特别兴趣小组/标签):

cbs build infrastructure7-el7 git+https://git.centos.org/rpms/centpkg-minimal.git#ca63b53c8bde1efc91d55548f194dbecbf457cad

常见错误消息

2023-09-11 07:24