本次冲刺我们取得的进展包括

  • 在 DVD 上呈现多个产品供用户选择
  • 适应切换到 rpm-md 包元数据格式,涉及许可和 Beta 通知
  • 在通过 AutoYaST 进行升级时,通知无法支持 ReiserFS
  • 不再报告缺失的可选模式

和往常一样,新的存储堆栈值得单独介绍。

  • 专家分区程序具有更好的初始摘要,并且更好地处理 Btrfs 子卷。
  • Snapper 现在可以创建和恢复快照。
  • 正在开发更灵活的安装方案。
  • 它已经包含在 SLE15/Leap15 中。

在第一个屏幕中选择基础产品

正如我们 三冲刺前报道的,YaST 将支持在同一安装介质上拥有多个产品。此功能将允许在同一 DVD 上发布多个 SUSE 产品,并询问用户要安装哪个产品。

但是,作为 (open)SUSE 用户,您可能知道安装程序的第一个屏幕允许您选择语言/键盘,此外,它还会显示产品的许可。但是,对于多产品介质,我们应该显示哪个许可呢?

在咨询了我们的 UX 专家后,我们决定允许在欢迎屏幕中选择产品,如下所示。

Selecting the base product

显然,此行为仅适用于多产品介质。在使用单个产品介质时,许可将直接显示在欢迎屏幕上。

最后,作为开发人员,我们想强调我们主要使用现代 YaST 技术(例如我们针对 YaST 小部件的 面向对象 API)重新实现了欢迎屏幕,从而提高了测试覆盖率和代码质量。

从仓库获取许可

冲刺 40 报告中,我们宣布 YaST 停止支持 SUSE 标签,因为计划是使用 RPM 元数据和软件包来存储所有这些信息(许可、发行说明等)。

在此冲刺(以及之前的冲刺)期间,我们专注于改进基础产品许可的处理方式。直到现在,许可都存在于安装介质中包含的 tarball 中。但现在情况已不再如此:YaST 现在依赖于(出色的)libzypp 从仓库中直接获取产品许可。仍然存在一些不足之处:例如,应该改进多语言支持,但我们将很快解决它们。

最后,请记住,只有基础产品许可得到了调整,但我们计划对模块、扩展和附加组件执行基本相同的操作。

更新 README.BETA 支持

YaST 安装程序支持显示安装介质中的 README.BETA 文件。此文件在 Beta 阶段添加,以便用户知道这不是最终版本。在最终产品发布后,如果您不小心启动了旧介质,这也很有用。

不幸的是,原始 YaST 代码仅支持所谓的 SUSE-Tags 仓库格式,该格式用于 CD/DVD 介质。但是,新的 SUSE Linux Enterprise 介质将使用 RPM-MD 格式,这完全不同。

在此冲刺中,我们添加了对 RPM-MD 格式的支持,并且还在 AutoYaST 安装中显示 Beta 警告弹出窗口。当然,用弹出窗口阻止 AutoYaST 并不是一个好主意,因此在 AutoYaST 模式下,弹出窗口会在超时后自动关闭。(默认值为 10 秒,但可以在 XML 配置文件中进行配置。)

停止支持 ReiserFS 自动升级

ReiserFS 手动安装的支持停止在 我们上一篇帖子中宣布,现在轮到自动升级了。

使用 SUSE Linux Enterprise 15,如果检测到 ReiserFS 存在,自动升级将被阻止,建议手动转换为其他文件系统。

ReiserFS warning

软件方案不会报告缺失的可选模式

YaST 会引导您完成系统的安装过程,根据不同的选择(例如产品、附加组件、系统角色、桌面等)为您提供建议。

此建议包含一些强制软件模式,也包含一些可选模式,但只有强制模式在显示建议时才会报告。

在此冲刺中,我们修复了一个错误,该错误不仅报告了缺失的强制模式,还报告了可选模式。

Software proposal

存储堆栈 (storage-ng)

存储重实现:专家分区程序

如您可能已经知道,在 YaST 团队中,我们正在从头开始重写我们强大的专家分区程序工具,以使其适应新的存储层。我们一次又一次地将专家分区程序提供的许多出色功能带回来,这次也不例外。

现在,当进入专家分区程序时,所有可用的存储设备都会在初始摘要中呈现。此外,在这个第一个屏幕上,您可以找到一个重新扫描设备的选项,这允许专家分区程序了解您系统中的更改,例如,当您插入 USB 存储设备时。

Expert Partitioner

在此冲刺期间,Btrfs 子卷的管理也得到了改进。现在,当新的子卷被现有的挂载点覆盖时,您将被警告。此外,当系统中的挂载点发生更改时,某些子卷可以自动删除或创建。

Snapper 可以再次快照

我们重新引入了关于使用 Btrfs 的最重要功能之一:能够创建快照,以便您可以在软件包升级或更改系统配置时出现问题时返回到系统的先前状态。这意味着我们现在再次正确设置和配置 snapper,将所有内容安装到子卷中,并在安装完成后创建初始快照。

为什么首先要安装到子卷中?将来创建快照(例如,在软件包升级或安装期间),并且在某个时候您决定回滚到其中一个快照,您可能希望删除以前的快照以节省磁盘空间。如果我们没有安装到子卷中,初始文件将始终保留并占用磁盘空间,因此会造成相当大的资源泄漏。

扭曲存储方案

如您所知,重写的存储堆栈的重要组成部分是分区方案。旧方案的设计范围相当狭窄。它针对桌面和老式服务器,始终建议根文件系统、交换卷和可选的单独 /home。这对于具有不同重点的新型创新产品(例如 SUSE CaaS PlatformopenSUSE KubicSUSE Manager 等)来说并不是最有用的方案。

正如我们经常提醒的那样,YaST 支持的所有产品(SLES、SLED、Leap、Tumbleweed、Kubic、CaaSP、SUSE Manager、SLES4SAP,您说的是什么)共享一个相同的安装程序。该安装程序完全可使用包含在介质中的 file control.xml 进行配置,从而可以定义安装程序步骤的顺序、默认值等等。

新的存储方案的目标之一是为产品创建者和发布经理提供更多自由度和灵活性来配置引导设置的行为。为此,我们需要更好的 control.xml 格式,以便他们可以用更少的限制表达自己。

当然,新的格式不是 YaST 团队可以自行决定的事情,而是与所有相关方公开设计的。为了方便任何人参与该主题,我们准备了 此详细文档,其中包含所有当前和历史信息以了解该主题,以及包含基于现有或假设用例的几个示例的新格式说明。

与 YaST 中的所有内容一样,该文档是活跃的,预计将继续根据每个人的反馈和贡献而变化和发展。因此,请随时查看并提出改进建议或我们可能遗漏的未来用例。

存储堆栈已死,存储堆栈万岁

在我们的 上一篇冲刺报告中,我们告诉您我们正在努力将新的存储堆栈集成到未来的 SLE15 和 openSUSE Leap 15 代码库中。现在提交过程已经完成,未来两个发行版的初步镜像完全基于 libstorage-ng。对于 openSUSE Tumbleweed,这是 Staging:E 项目。这意味着现在有更多的人在关注它,发现错误,指出缺失的内容,并提供有关新行为的反馈。当然,每对眼睛都会给 YaST 团队带来一些压力,以便尽快完成工作,但也会带来一对帮助我们实现目标的双手。