[FrontPage] [TitleIndex] [WordIndex

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

整個過程中,有兩個階段可以讓套件獲更廣泛的應用。測試內容可以發放到 buildlogs.centos.org 分發網絡供開發者及 CI 系統應用。已適合發行的內容可以透過 mirror.centos.org 上的 SIG 專用目錄供使用者應用。

首先,決定軟件庫在 mirror.centos.org 上的最終發行位置。你可以在 buildlogs.centos.org 上採用同一路徑。

推送測試內容至 Buildlogs

由 2020 年 3 月 25 日起實施的新簽署程序只須將套件標籤進 -testing 軟件庫便足夠了。

每當你把新建的套件標籤為 -testing,便會觸發 koji 上的 distRepo 任務並將它推進 buildlogs.centos.org 假設你的標籤是 cloud7-openstack-train-testing,而你啟用了三個架構(x86_64、ppc64le 及 aarch64),套件就會出現在

在 mirror.centos.org 發行內容

在鏡像網絡上申請空間的步驟

與 -testing 的步驟相同,唯獨現有的程序會接獲通知有套件被標籤為 -release,因此它們會被推送到 mirror.centos.org 網絡(及外部鏡站),並以適當的 SIG GPG 金鑰簽署。

此外 debuginfo 套件會被推送到 debuginfo.centos.org,而 src.rpm 套件被推送到 vault.centos.org

值得留意的是針對 CentOS 7,x86_64 會被推送到 mirror.centos.org/centos/$path,而其它架構如 ppc64le/ppc64/aarch64 會被推送到 mirror.centos.org/altarch/$path。你可以運用 $contentdir 這個 yum 變數在你的 .repo 檔內選擇分支(centos 或 altarch)。

centos-release 套件

若要放送 SIG 套件給用戶,yum 的 repo 檔必須收錄在一個名為 centos-release-<元件> 的套件內。此 centos-release-<元件> 套件將會在 CentOS Extras 軟件庫內發行。該 .repo 檔亦應包含 gpg 公鑰,以便能驗證從鏡站點下載的資源。

舉例說,雲端 SIG 利用 centos-release-openstack-rocky 內的軟件庫定義檔來發行 OpenStack Rocky。

1. 建立 centos-release-* 套件
  1. 如果你是一個新的 SIG,但仍未被編配 SIG gpg 金鑰(公鑰應列於 https://www.centos.org/keys/#community-driven-project-keys),你必須在 https://pagure.io/centos-infra/issues/ 建立錯誤報告。

當你收到 gpg 公鑰後,便可以開始建設 centos-release--* sig 套件。

  1. 為 centos-release-<SIG> 套件申請於 https://git.centos.org 上建立一個源碼庫(例如 https://git.centos.org/rpms/centos-release-openstack):請在 https://pagure.io/centos-infra/issues/ 提交申請

  2. 在 .repo 檔內設定你的內容。舉個例說,centos-release-openstack-rocky 可以有下列的主軟件庫定義:
    [centos-openstack-rocky]
    name=CentOS-7 - OpenStack rocky
    mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=cloud-openstack-rocky
    #baseurl=http://mirror.centos.org/$contentdir/$releasever/cloud/$basearch/openstack-rocky/
    gpgcheck=1
    enabled=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Cloud
  3. repo 檔內亦可以有其它軟件庫的定義,例如 testing、debuginfo 及 sources。參考其它 centos-release-* 作為例子。 以上例子利用 mirrorlist.centos.org 來選取最近的外置鏡站。透過 mirrorlist.centos.org 來取得鏡站是首選的方法,因為它提供最快的鏡站給用戶,並減低 mirror.centos.org 的負荷。作為後備方案,baseurl 指向由 CentOS 控制的 mirror.centos.org 並被詮釋掉。留意 $contentdir 是用來選取 centos 或 altarch。

    建設 mirrorlist.centos.org 軟件庫參數的方法是從路徑移除架構,然後以破折號代替斜杠。譬如,cloud/x86_64/openstack-rocky 內的檔案來自名為 cloud-openstack-rocky 的軟件庫,而 sclo/x86_64/rh/rh-python36 來自 sclo-rh-rh-python36。請確保你的 .repo 檔含有正確的路徑及軟件庫名稱。mirror.centos.org 上的內容每三個小時便會掃描一次,任何新的軟件庫會自動被加進鏡站的搜查資料庫。

  4. 如何你是首次建立套件,請將 centos-release-mycomponent 加進 Extras 的標籤內
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-candidate centos-release-mycomponent
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-testing centos-release-mycomponent
    [bstinson@localhost centos-release-mycomponent]$ cbs add-pkg --owner=bstinson core7-extras-common-release centos-release-mycomponent
  5. 在 CBS 內針對 Extras 標籤建立套件
    [bstinson@localhost centos-release-openstack-mycomponent]$ cbs build core7-extras-common-el7.centos centos-release-mycomponent-0.0.1-1.rpm
  6. 建立一個錯誤報告,申請把內容同步至 mirror.centos.org(見 zh-tw/SIGGuide#MirrorSpace

  7. 為建設加上 testing 標籤
    [bstinson@localhost centos-release-openstack-mycomponent]$ cbs tag-build core7-extras-common-testing centos-release-mycomponent-0.0.1-1
  8. 利用 yum install 測試從新軟件庫安裝套件

  9. 準備就緒後,為建設加上 release 標籤
    [bstinson@localhost centos-release-openstack-rocky]$ cbs tag-build core7-extras-common-release centos-release-mycomponent-0.0.1-1

2. 有關 centos-release-* 套件的一些指引
  • centos-release-* 套件應該被建立為 noarch RPM

2023-09-11 07:23