我们知道你错过了 YaST 前线的常规总结。但别慌,这里有!和往常一样,我们只会介绍一些亮点,省去那些不那么令人兴奋的常规错误修复的繁琐细节。
软件包通知
libzypp 有一个很好的功能,可以使软件包在安装/升级时显示通知。Zypper 利用此功能并在安装/升级软件包时显示该信息。例如,如果你安装 mariadb 软件包,Zypper 会通知你设置数据库 root 密码等等。
如果你使用 YaST 安装了这些软件包,你错过了这些信息……直到现在!从 yast2 3.1.175 开始,YaST 将显示软件包通知。


唯一的例外是在进行常规安装(或自动安装)时,因为我们希望显示尽可能少的对话框。
从 USB 存储设备读取注册码
在安装 SUSE Linux Enterprise 产品时,会要求你提供注册码。以前你必须记住它并手动输入。现在,该代码可以从 USB 存储设备读取。


在安装启动时或在完成第一个安装屏幕(语言、键盘和许可协议)之前插入 USB 存储设备。该存储设备应在 /regcodes.txt 或 /regcodes.xml 中包含注册码。在注册对话框中,输入字段将被预填充。
文件的语法如下。在文件中,使用 zypper search --type product 或 SUSEConnect --list-extensions(不包括 /version/architecture 部分)识别产品名称。
regcodes.txt
SLES cc36aae1
SLED 309105d4
sle-we 5eedd26a
sle-live-patching 8c541494
regcodes.xml:(如果同时存在 xml 和 txt,则 xml 优先)
<?xml version="1.0"?>
<profile xmlns="http://www.suse.com/1.0/yast2ns" xmlns:config="http://www.suse.com/1.0/configns">
<suse_register>
<!-- See https://www.suse.com/documentation/sles-12/singlehtml/book_autoyast/book_autoyast.html#CreateProfile.Register.Extension -->
<addons config:type="list">
<addon>
<!-- Name of add-on as listed by "zypper search --type product" -->
<name>sle-we</name>
<reg_code>5eedd26a</reg_code>
</addon>
<addon>
<name>sle-live-patching</name>
<reg_code>8c541494</reg_code>
</addon>
<addon>
<!-- SLES is not an add-on but listing it here allows for combining
several base product registration codes in a single file -->
<name>SLES</name>
<reg_code>cc36aae1</reg_code>
</addon>
<addon>
<name>SLED</name>
<reg_code>309105d4</reg_code>
</addon>
</addons>
</suse_register>
</profile>
专家分区程序中大量的 Btrfs 相关改进
我们还投入了大量时间来改进专家分区程序中对 Btrfs 的支持。实现了用户请求的一个功能并修复了五个错误。
以下动画显示了功能 #320296(用户友好的子卷处理)的实际效果,以及对 965279(Btrfs 设置始终被默认值覆盖)的修复。

但是,我们还有更多关于专家分区程序改进的屏幕截图和动画。在 这个 pull request 的描述中,你可以看到显示为修复 bug#928641 而实现的新对话框的屏幕截图。在 另一个 pull request 中,你可以看到对 bug#944252(为除 root 以外的分区提供快照)和 bug#954691(Btrfs 分区忘记 fstab 选项)的修复效果。
改进新存储代码的可测试性
在最近的帖子中,我们报道了我们即将重构 YaST 的存储子系统。之前总结中 介绍的 安装分区建议执行了许多操作——例如分析有哪些磁盘以及每个磁盘上有什么内容,检查是否有足够的可用空间,并猜测哪些分区可能是删除以腾出空间以进行新 Linux 安装的候选分区。
如果有很多磁盘和很多分区,这会很快变得非常复杂。因此,我们需要一种可靠的测试方法。因此,我们创建了一个测试框架来构建带有假分区和文件系统的假存储硬件(磁盘)。虽然这是假硬件(我们无法凭空创建硬盘……目前),但它使我们能够在不设置虚拟机的情况下进行单元测试。通过这些测试,我们可以覆盖更多以前很难测试的场景,例如一个或多个磁盘、不同类型的多个分区、先前存在的 RAID 阵列或任何其他情况。
libstorage 的一个好处是它在“设备图”上运行,这些图可以转换为 GraphViz 格式以便于可视化。这里有一个由 libstorage 基于从 这个 YAML 规范 创建的假硬件生成的漂亮图表。
更好地处理扩展的错误注册码
我们还花了一些时间来改进扩展和模块注册部分的可用性。现在,如果用户选择了多个模块并且其中一些模块的注册失败,用户将被友好地重定向回同一个对话框,但仅包含未注册模块的输入字段。从那里,他们可以返回取消选择失败的扩展,或使用不同的(甚至相同的)代码重试。
告别“接收系统邮件”复选框
作为对用户创建对话框所做的改进的最后一步(有关更多详细信息,请参阅 之前的帖子),我们删除了题为“接收系统邮件”的早已没有意义的复选框。这导致了相当多的代码被删除……而删除代码通常是一件好事。![]()
还有很多其他事情
和往常一样,这只是一个简短的总结,其中包含一些亮点。实施了许多其他内容并修复了几个其他错误,但是,你知道,如果我们想花时间进行调试和编码,我们无法记录所有内容。![]()
大约三周后,我们将在下一个冲刺的亮点中与你再见。
PS.- 如果你想参与其中,请查看我们在 openSUSE 导师页面 上拥有的 YaST 相关夏季项目。
