RHEL8已出,CentOS8为何迟迟不发布?独家揭秘CentOS新版开发流程

2019-07-26     Linux学习教程

请关注本头条号,每天坚持更新原创干货技术文章。

如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习

1. 前言

RHEL8 ( Red Hat Enterprise Linux 8 ) 于2019-05-07发布,很多人都在等待CentOS8推出的时间。 本文主要讲解CentOS如何构建一个新的版本以及新系统开发流程。

CentOS的主要版本需要进行大量的规划和工具更改,因为它基于最新的Fedora版本。这意味着从安装程序、软件包、打包到构建系统的所有内容都需要进行重大的修改才能适用于新的操作系统。这意味着总是有一个上升阶段,这取决于重新构建工作所需的更改。RHEL 8和RHEL 7之间的差异也不例外,因为内核发生了巨大的变化,软件仓库格式增加了“模块”,rpm增加了许多RHEL7和以前没有的特性。在RHEL7和RHEL8之间唯一没有发生巨大变化的是init系统,它仍然是systemd。这是第一次升级到新系统而没有变化的组件,因为EL5有SysV, EL6有Upstart, EL7有Systemd,他们全都进行了升级。

CentOS8什么时候发布

2. CentOS新版本开发流程

CentOS新版本开发流程

进行CentOS重建所需的步骤通常遵循以下步骤:

  1. Red Hat提供源代码
  • 以前是通过src.rpms完成的,但从RHEL7开始改为git repos
  • 在RHEL8时代,CentOS与Fedora的合作更紧密,并将与Fedora系统共享git repo。
  • 红帽的推送时间从2019-05-07至2019-05-08
  1. CentOS需要查看源代码并确定构建这些软件包所需的内容
  • rpm格式添加了建议等项,这些项更改了一些工具要求
  • 打包格式已经从yum更新到dnf4/yum4,这增加了模块性。模块是一个额外的障碍和工作量,因为它们允许软件的并行可用版本,但不允许并行安装(也就是说,您可以构建Perl-5.24和Perl-5.26,所有Perl模块都需要针对这两个集合进行编译)。模块流版本与特定的时间戳相关联,这意味着您不能重新构建RHEL或Fedora并获得完全相同的版本名称。
  • 总有一些软件包需要解决死循环。您需要golang-(X-1)来构建golang-(x),但是golang-(X-1)还不存在。如何构建一个版本并打破这个死循环?
  1. CentOS需要建立一个可以允许这些更改的构建系统。
  • 虽然CentOS可以使用Fedora系统作为模板,但其中有些项目对CentOS没有意义。
  • RHEL8测试版很有用,但仍有重大变化需要重新考虑
  1. CentOS需要查看源代码,并找出所有需要取消红帽品牌的地方。
  • 不仅仅是执行查找和替换代码("sed s'/Red Hat/CentOS/'),总有人建议使用这样的代码,然而,并没有什么卵用。
  • 有些地方需要替换,而有些地方不需要
  1. 构建可以通过系统开始
  • 在开始构建时,这通常需要一个多循环
  • 然后开始重建核心
  • 然后添加更多,可能重复1-2次。
  • 然后,您可以开始构建其余的包
  1. 安装程序通常需要一定工作量的才能把软件包打包在一起。
  • 有些东西需要添加补丁
  • 有些东西只需要排序正确
  • 有些东西,比如用于安全引导的shim签名,可以通过签名权限进行外部审查
  1. 开始质量保证工作
  • 测试软件包或从包中构建
  • 使用安装程序测试来进行质量测试
  1. 完成某些候选版的工作
  2. 发布正式版

  1. 完成所有工作即可发布CentOS8正式版

本文已同步至博客站,尊重原创,转载时请在正文中附带以下链接:

https://www.linuxrumen.com/rmxx/1250.html

点击了解更多,快速查看更多的技术文章列表。

文章来源: https://twgreatdaily.com/zh-hans/lA7vX2wBUcHTFCnfgyx7.html