若要放送 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/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