一个安装介质中包含多个产品
显然,我们几天前就停止向 SLE12-SP3 和 Leap 42.3 添加新功能了,因为所有内容都需要在发布前进行适当测试。所以现在我们主要着眼于未来。对于 SUSE Linux Enterprise (SLE) 的未来计划之一是提供包含多个产品的一个安装介质。
SUSE 提供了几个基于 SLE 的特定任务产品,到目前为止,每个产品都需要从自己的介质(通常是 DVD 或虚拟镜像)安装。因此,如果您使用 SLE Server、SLE Desktop 和 SLE Server for SAP,您必须拥有三张 DVD,这有点麻烦。
在讨论了一些技术实现细节后,我们创建了安装程序的第一个原型,其中包含一个额外的对话框,允许选择检测到的产品之一,然后根据所选产品的安装工作流继续安装。这仍然是一个概念验证,但我们至少可以分享一些截图,展示目前它的样子。
到目前为止,还没有在 openSUSE 中使用这项新功能的计划,主要原因在于该项目不像 SUSE 对 SUSE Linux Enterprise 那样提供独立的特定任务产品。
存储重新实现:专家分区器回归后的数字
在冲刺 36 报告中,我们介绍了 YaST 分区器的重写,并在后续报告中不断更新其演变。当时我们告诉您,我们决定将其拆分为一个单独的 yast2-partitioner 包。但时间证明这个决定有太多缺点,所以我们决定将分区器带回其主页,即 yast2-storage-ng。作为此过程的一部分,我们删除了 yast2-storage-ng 存储库中仍然存在的分区器旧原型,以及一些仅用于支持该旧原型的代码。
您可能想知道这一切为何重要。这是因为这意味着存储库(以及因此的包)最终将接近其发布到 Tumbleweed 时的最终结构。这意味着我们用于自动测量存储库质量和可靠性的所有系统现在都提供了可靠的结果……正如自动质量评估所能达到的可靠程度。
根据这些工具
- yast2-storage-ng 中 93% 的代码除了 openQA 之外,还通过自动化单元测试覆盖(预计随着我们完善新的分区器,这个数字在不久的将来会提高),
- Code Climate 报告的代码质量 GPA 为 3.91(满分 4 分)
- 包括内部类、模块和函数在内的所有类的 76% 都经过了适当的文档记录(顺便说一下,该开发者文档可在此处获取)。
如果您想了解我们想要替换的旧代码库的数字,它的代码质量是 0.94,只有 31% 的代码被单元测试覆盖。这是一个完美的遗留代码示例。
存储重新实现:AutoYaST 中的 Btrfs 子卷
如前所述,新的存储栈已经可以处理包含分区、LVM 和 MD 阵列的 AutoYaST 配置文件,但仍缺少一些细节。我们首先要解决的细节是在 Btrfs 文件系统中定义和创建子卷。
现在它按照官方文档工作——支持 <subvolumes> 部分的两种语法,它从不创建会被任何其他已挂载文件系统遮蔽的子卷,并且如果使用 Btrfs 但未指定子卷,它会使用 control.xml 中的列表作为根分区的备用方案。
所有这些,在新实现的堆栈中,一如既往地,都附带经过全面测试和文档化的代码。
存储重新实现:处理提议中的多路径 I/O
在上一份报告中,我们展示了多路径 I/O 支持在库级别的表现,这通常只意味着极客图表。在此次冲刺期间,我们已经教会安装程序使用该新库功能,所以现在我们有真实的截图可以展示!
在安装过程中,现在会检测多路径硬件并询问用户是否激活。
如果用户同意,安装程序将永远不会使用单个磁盘设备来提议分区布局,也不会在引导设置中将它们作为选项提供。安装程序始终在最终(复合)多路径设备上工作,提议正确的分区名称等(作为设备映射器设备,它遵循
与裸设备相比不同的模式)。
生成的系统仍然无法完全启动,因为 yast2-bootloader 尚未适应此场景。很可能,这是即将到来的冲刺任务,敬请期待。
支持 Ruby 2.4
世界每天都在变化,我们一直在调整 YaST 以保持其光彩。Ruby 的 2.4 版本即将登陆 openSUSE Tumbleweed,并有望成为 SUSE Linux Enterprise 15 和 openSUSE Leap 15 的默认 Ruby。我们发现一些 YaST 包尚未完全为这个新 Ruby 做好准备,所以是时候进行一些调整了。
在处理了对本博客而言过于技术和无聊的一些细节之后(如果您想了解更多细节,请随时提问),YaST 在 Factory 中再次闪耀,这意味着我们不再阻碍 Ruby 2.4 在 Tumbleweed 中的采用。
附加组件创建器和产品创建器
随着我们团队不断开发新功能、解决错误并接收反馈,我们始终评估我们的优先级和产品。有时,在评估过程中,我们发现某些 YaST 模块没有带来足够的价值,或者作为我们标准软件包的一部分不够出色。
经过一番评估,我们宣布 Add-on Creator 和 Product Creator 模块将不再是 YaST 的一部分。这些软件包使用 Kiwi 作为后端,并且我们在 UI 方面竞争激烈——SUSE Studio 和 Open Build Service。因此,保留这些软件包不再有意义,我们建议这些模块的用户使用替代方案之一,或者如果您已经有 Kiwi 的 XML 定义文件,则直接使用 Kiwi。
调整 YaST 以接受 12 位服务请求号
由于服务请求号现在可以由 11 或 12 位数字组成,而不再像以前那样只有 11 位数字,我们必须调整 YaST 来处理这一变化。YaST 支持模块现在可以接受 11 或 12 位数字的服务请求号。我们为从 SLE 10 SP3 到最新 SUSE Linux 版本的所有产品都实施了这一更改。包含此更改的更新将很快发布。
自动安装第一阶段的网络设置
YaST 安装曾有两个阶段,由一次重启分隔。从 SLE 12 和 openSUSE Leap 42.1 开始,我们取消了
第二阶段。但它仍然是 AutoYaST 所需的,由设置控制
<profile><general><mode><second_stage>true | false</...>
我们已经修复了网络设置的这些部分,现在您可以明确地将 AutoYaST 设置为不再使用第二阶段。
AutoYaST 中的用户设置
我们发现的一个问题是,当不同用户具有相同的 UID 时,GDM 会出现问题。如果发生这种情况,GDM 将无法正常启动。作为解决方案,我们决定要么在 AutoYaST 配置文件中为**所有**用户定义 UID,要么根本不为**所有**用户使用此标签,因为两者的混合可能导致 UID 重复。
我们继续 YaSTing!
我们希望您喜欢我们的报告,就像我们喜欢构建所有这些一样。我们将继续 YaSTing,以便两周后再次与您见面,届时将有更多精彩内容展示。
现在,请尽情享受您的 openSUSE 42.3 以及随之而来的所有酷炫功能吧!



