虽然由于 COVID-19 危机,世界各地的许多活动正在放缓,但我们很自豪地说 YaST 的开发仍在全力进行。为了证明这一点,我们为您带来另一份报告,介绍 YaST 团队在过去几周里所做的工作。
openSUSE Leap 15.2 和 SUSE Linux Enterprise 15 SP2 的发布即将到来。这意味着我们投入了大量时间来修复测试人员发现的错误。其中许多错误并不特别令人兴奋,但我们仍然有很多有趣的话题可以报道。
- 更多关于新的在线搜索功能的消息
- 改进配置 NTP 的用户界面
- s390 主框架安全启动支持的进展
- AutoYaST 中更好的报告
- 一些与存储设备处理相关的错误修复
- 还有一个奖励:我们用于批量审查 GitHub pull request 的新工具
那么,让我们开始吧!
在线搜索不断改进
这并不是我们忠实的读者第一次了解 YaST 在 SLE 模块和扩展中在线搜索软件包的功能。我们最初在 三份报告前 展示了它,随后是 对 几个我们决定在初始版本之上实施的可用性改进的审查。
但是,像往常一样,SUSE 的 QA 部门做得很好,迫使我们更进一步,并为我们提供了有关如何改进功能的有用信息。除了少数错误之外,他们报告说存在重要的性能问题,并且可以改进用户体验。
当处理大型结果集时,性能问题令人烦恼。在我们的测试机之一上,在从 SUSE 客户中心收到列表后,显示找到的软件包需要几秒钟。此外,滚动结果也相当慢。幸运的是,这些问题现在已经消失了:大部分时间都花在网络通信上,滚动也很流畅。
关于用户体验,我们引入了一些更改
- 现在有一个按钮可以清楚地说明如何选择/取消选择要安装的软件包。在基于文本的界面中,很容易推断出按
Enter足够了。但是,在图形替代方案中,事情并不那么容易。 - 我们添加了一些关于找到多少个软件包的信息。
- 帮助文本已扩展和改进。
但是,在线搜索 UI 并不是唯一受到关注的界面…
多个 NTP 服务器的奇怪案例
YaST NTP 允许配置用于同步系统日期和时间的 NTP 服务器列表。但是,我们心爱的用户之一报告说,YaST 时区模块中的某个步骤序列可能会破坏该列表,将其减少到仅其第一个条目。这是由于两个 YaST 模块之间缺乏一致性造成的。
YaST 时区很早以前就被设计成,与 YaST NTP 不同,只显示和配置一个服务器。您可能会问,为什么可以在 YaST 时区从 NTP 配置,如果有一个更具体、更高级的 YaST 模块可以用于此目的?答案是 YaST 时区对话框是在安装期间可用的唯一对话框,在安装期间,将时区和 NTP 配置全部放在一起并提供简化的选项是有意义的。
这种简单性对于具有基本配置的已安装系统也很有意义。但是,在具有高级设置的系统中,我们调整了该对话框以显示服务器列表,并且不提供任何调整该配置的快捷方式。相反,YaST 时区对话框提供了一个“配置”按钮,该按钮打开 YaST NTP 对话框,用户可以在其中随意微调 NTP 配置。
zSeries 主框架安全启动 - 第二轮
几份报告前,我们介绍了 zSeries 安全启动的初始支持。我们已根据早期测试人员和主框架专家的反馈改进了该功能。
现在,YaST 行为更好地适应了其执行系统的特征。我们可以详细介绍每个 zSeries 型号以及 YaST 如何根据其硬件配置进行行为。但既然一图胜千言,让我们用这个新的警告来说明一下,当启用安全启动支持时会显示 z15+ 要求。
帮助文本和安装程序提案中显示的信息也已调整,以更好地解释 YaST 中可能设置的后果。再次,让我们用一个示例图像来查看。
但是,正如您已经知道的,这并不是我们正在逐步改进 YaST 的唯一部分,一次冲刺接一次冲刺…
AutoYaST 中更多的健全性检查
作为我们持续努力改进 AutoYaST 错误处理和报告能力的一部分(请参阅此 先前报告的此部分),我们已为多设备技术添加了新的检查。因此,如果您正在设置 LVM 卷组、RAID、Bcache 或多设备 Btrfs 文件系统,AutoYaST 会确保其组件也在 AutoYaST 配置文件中正确定义。
例如,假设您想设置一个新的 LVM 卷组,但忘记定义哪些设备将充当它的物理卷。在这种情况下,AutoYaST 的新版本会报告缺少定义并停止安装。
在下面的图像中,您可以查看错误报告机制的外观。在此示例中,它报告 AutoYaST 配置文件包含一个新的多设备 Btrfs 文件系统,但它没有指定哪些磁盘或分区应该是该文件系统的一部分。
一切都关于块
如前一节所述,正如我们所有的用户所知,YaST 和 AutoYaST 可用于定义软件 RAID,其中多个磁盘或设备结合起来以实现更高的性能、更高的可靠性或两者的结合。
通常的场景是组合相似的磁盘。但是,Linux 中的 RAID 技术非常先进,它允许将具有不同块大小的磁盘组合到同一个阵列中。由于最近的错误报告,我们意识到 YaST 没有以最佳方式处理这种情况。这导致对 RAID 设备的最终大小的错误估计,进而导致在其中创建分区时可能出现错误。
我们修复了 libstorage-ng 代码和 其文档,现在它提供了关于如何在 Linux 和我们的存储库中处理这种情况的准确描述。
除了 RAID 的创建之外,YaST 分区器还提供了一些与使用许多磁盘的设置非常方便的 相关功能。例如,“将分区克隆到其他设备”按钮,可用于将相同的初始布局复制到随后将使用 RAID 技术组合的所有磁盘。
当使用此按钮时,分区器会尝试仅提供有意义的目标设备。这意味着它们必须至少与源设备一样大,它们必须具有相同的拓扑结构等。但是,猜猜怎么着!我们发现它没有检查块大小。现在也已修复,未来版本的分区器将不允许将分区表克隆到具有不同块大小的另一个磁盘,这在大多数情况下会导致故障。
更准确地检测 zFCP 设备
说到存储设备,最近我们收到了一份关于 AutoYaST 无法在 s390 主框架上安装 SUSE 的错误报告。在检查日志和所有提供的信息后,我们发现配置文件基本上是错误的,因为它包含以下 zFCP 设备的定义
<listentry>
<controller_id/>
<fcp_lun>0x0000000000000000</fcp_lun>
<wwpn>0x0000000000000000</wwpn>
</listentry>
除了缺少 controller_id 之外,fcp_lun 和 wwpn 看起来也不对。因此,配置文件无效,AutoYaST 无法对其做任何事情。完成了!好吧,不是那么快:问题是配置文件是由 AutoYaST 本身生成的。
我们发现 AutoYaST 错误地将 iSCSI 设备识别为 zFCP 设备。因此,上面的配置文件摘录对应于 iSCSI 设备,显然,它没有任何这些属性。
一个简单的修复解决了这个问题,zFCP 设备现在可以在 openSUSE Tumbleweed 以及将随 openSUSE Leap 15.2 和 SLES-15-SP2 提供的 AutoYaST 版本中正确检测到。
超越 YaST:GitHub 从命令行审查
我们还保留了一些开发时间用于学习和创新。这部分是关于报告此类工作的成果。
有时我们需要进行简单的更改,但在许多 Git 存储库中。有时我们需要触及所有存储库,例如,当我们需要更改 CONTRIBUTING.md 或类似文件时。
在 GitHub Web 用户界面中批准数十个 pull request 并不容易或方便,因此我们创建了一个简单的脚本,可以从 Linux 命令行批准 pull request。该工具是交互式的,它会为每个 pull request 显示一些详细信息、diff、Travis 状态等,然后询问是否批准。
如果您批准了请求,它将使用通常的“LGTM”(看起来不错)消息在 GitHub 上批准它。如果未批准该请求,则需要在 GitHub Web UI 上手动评论为什么。
有关更多详细信息,请参阅 此 GitHub 存储库。
最后的几句话…目前为止
正如您所看到的,YaST 团队成员的身体可能被限制在家里,但我们的思想仍然在外面,为您创造、微调和交付软件。您可以帮助我们通过测试 openSUSE Leap 15.2 和 SUSE Enterprise Linux 15 SP2 的 beta 版本,或只是保持您的 openSUSE Tumbleweed 最新状态,并报告您在 YaST 中发现的任何异常情况。
我们将在大约两周后带着更多消息回来。与此同时,玩得开心并照顾好自己和您所爱的人。






