[FrontPage] [TitleIndex] [WordIndex

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

現時向 CBS 提交建設要求的流程,是在開發者的工作目錄內建立一個源碼 RPM,然後提交給建設系統。開發者必須擁有一個有效的 CBS 帳戶,並在他們的工作台上安裝了客端工具(見 zh-tw/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:23