若要放送 SIG 套件給用戶,yum 的 repo 檔必須收錄在一個名為 centos-release-<元件> 的套件內。此 centos-release-<元件> 套件將會在 CentOS Extras 軟件庫內發行。該 .repo 檔亦應包含 gpg 公鑰,以便能驗證從鏡站點下載的資源。
舉例說,雲端 SIG 利用 centos-release-openstack-rocky 內的軟件庫定義檔來發行 OpenStack Rocky。
建立 centos-release-* 套件
如果你是一個新的 SIG,但仍未被編配 SIG gpg 金鑰(公鑰應列於 https://www.centos.org/keys/#community-driven-project-keys),你必須在 https://pagure.io/centos-infra/issues/ 建立錯誤報告。
當你收到 gpg 公鑰後,便可以開始建設 centos-release--* sig 套件。
為 centos-release-<SIG> 套件申請於 https://git.centos.org 上建立一個源碼庫(例如 https://git.centos.org/rpms/centos-release-openstack):請在 https://pagure.io/centos-infra/issues/ 提交申請
- 在 .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
- 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 上的內容每三個小時便會掃描一次,任何新的軟件庫會自動被加進鏡站的搜查資料庫。
- 如何你是首次建立套件,請將 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
- 在 CBS 內針對 Extras 標籤建立套件
[bstinson@localhost centos-release-openstack-mycomponent]$ cbs build core7-extras-common-el7.centos centos-release-mycomponent-0.0.1-1.rpm
建立一個錯誤報告,申請把內容同步至 mirror.centos.org(見 zh-tw/SIGGuide#MirrorSpace)
- 為建設加上 testing 標籤
[bstinson@localhost centos-release-openstack-mycomponent]$ cbs tag-build core7-extras-common-testing centos-release-mycomponent-0.0.1-1
利用 yum install 測試從新軟件庫安裝套件
- 準備就緒後,為建設加上 release 標籤
[bstinson@localhost centos-release-openstack-rocky]$ cbs tag-build core7-extras-common-release centos-release-mycomponent-0.0.1-1
有關 centos-release-* 套件的一些指引
- centos-release-* 套件應該被建立為 noarch RPM