改进服务管理器的用户体验
说到上一篇报告,我们之前介绍了 YaST 服务管理器模块的几项改进,包括新的“应用”和“显示日志”按钮。使用“应用”按钮,对服务进行的所有更改都将应用,而无需关闭服务管理器,这允许您继续使用它并检查服务的日志,而无需重新启动服务管理器。但这个新的“应用”按钮只有在有内容需要保存时才有意义,因此在这个 sprint 中,我们改进了 UI,以便在尚未更改任何内容时禁用该按钮。此外,现在更容易知道到目前为止我们对服务管理器进行了哪些编辑。对于服务的每次更改,新值都将使用特殊标记 (*) 显式突出显示。例如,当您将服务的启动模式从“启动时”更改为“按需”时,您将在相应的列中看到“(*) 按需”,请参阅示例。
服务列表和对其进行的更改可能非常长。因此,除了新的标记之外,现在在使用“应用”或“确定”按钮时会显示一个确认弹出窗口。此弹出窗口将呈现一个摘要,其中包含将应用的所有更改,即哪些服务将被启动或停止,哪些服务将将其启动模式更改为“启动时”、“按需”或“手动”,甚至在您修改了它时,新的默认 Systemd Target 将是什么。请参阅以下屏幕截图中的示例。
这些改进将很快在 openSUSE Tumbleweed 上发布,并将在即将发布的 SLE (SLE-15-SP1) 和 openSUSE Leap (15.1) 版本中提供。
Yast2 Systemd 类重组
与服务管理器中的更改相关,并且更侧重于开发人员的说明。Yast2 Systemd(YaST 组件的集合,在底层处理 Systemd 单元)也已完全重组为更符合 Ruby 的方式。从 YCP 样式的模块迁移到一组类,这些类在自己的适当命名空间中表现得像 Ruby 生态系统中良好的公民。
AutoYaST 支持 Xen 虚拟分区
为了继续改进上一轮 sprint 中引入的功能,我们还改进了对所谓的 Xen 虚拟分区的支持,我们之前在我们的上一篇文章中介绍了它。如前所述,旧的存储堆栈将 Xen 设备表示为 /dev/xvda1,作为不存在的 /dev/xvda 硬盘的分区。在新堆栈中,这些设备被视为它们应有的样子,即独立的块设备,没有从无处而来的虚构磁盘。
但是来自 SLE-12 或 Leap 42.x 的 AutoYaST 配置文件仍然假定存在将 Xen 虚拟分区分组的硬盘。因此,除了在上一个 sprint 期间分区器中引入的修复之外,我们还必须教新的存储堆栈如何处理像这样奇特的 AutoYaST <drive> 部分,用于描述 Xen 设备(xvda1 和 xvda2 确实存在于系统中,xvda 不存在)。
<drive>
<device>/dev/xvda</device>
<partition>
<partition_nr>1</partition_nr>
...information about /dev/xvda1...
</partition>
<partition>
<partition_nr>2</partition_nr>
...information about /dev/xvda2...
</partition>
</drive>
该修复将作为安装程序自更新补丁发布,以便安装 SLE-15(并可以访问自更新存储库)的用户可以利用它。从中期来看,我们需要提出一种更现实的格式来在 AutoYaST 配置文件中表示这些设备,但到目前为止,当前 AutoYaST 格式的限制迫使我们保持当前方法。
忽略非活动的 RAID 阵列
但这并不是本 sprint 中 Storage-ng 的唯一新技能。它还学会了如何更好地管理非活动的 RAID 阵列。MD RAID 阵列构建用于处理底层物理设备的故障。当某些设备发生故障时,RAID 变为“降级”,这意味着数据仍然可访问,但现在是时候修复问题了。当过多的设备发生故障时,RAID 变为非活动状态,并且在修复之前无法再运行。我们的分区器无法很好地处理这种情况,弹出了一个通用的“意外情况”错误消息。
我们已经修复了该问题,并且存储堆栈不再对找到非活动的 RAID 阵列感到困惑。更重要的是,它现在显示一个“活动:是/否”字段在 RAID 标题下,以告知用户 RAID 是否处于如此糟糕的状态。
所有这些将很快作为 SLE-15 和 Leap 15.0 的维护更新提供。到目前为止,尚未引入任何机制来阻止用户使用分区器修改非活动的 RAID 阵列。这将在未来到来,以及针对 SLE 和 openSUSE Leap 未来版本的 Storage-ng 中针对 MD RAID 的其他改进。
安装服务器模块中的媒体支持
这很尴尬,但事实证明,SLE15 和 openSUSE Leap 15.0 中的 YaST 安装服务器模块无法添加 SLE15/Leap15 安装介质。原因是新的介质使用不同的存储库格式,并且安装服务器模块在尝试添加新的存储库时崩溃了。
幸运的是,该修复很简单,允许正确添加新的介质。我们计划为 SLE15、openSUSE Leap 15.0 和 SLE12-SP3 发布维护更新。事实证明,SLE11-SP4 中的代码更健壮,不会崩溃,因此我们不需要在那里进行更新。
改进系统角色的帮助文本
我们最近收到了一份错误报告,说明阅读安装屏幕中解释系统角色的帮助文本有多么困难。因此,我们将其视为一个机会,来尝试我们的帮助文本系统有多灵活。添加一些富文本格式使其在图形模式下看起来更好,并且也令人惊讶地在文本模式下表现良好。让我们看看来自 Leap 15.0 的一些屏幕截图,尽管该修复也适用于 openSUSE Tumbleweed 和 SLE15 系列。
这是修复之前的样子。
现在是这样,在 Qt 和 Ncurses 中,使用新的格式。
修复 YaST HTTP 服务器模块中的 PHP 支持
YaST HTTP 服务器模块允许在 Apache Web 服务器配置中启用 PHP 支持。但是,由于该模块没有积极开发,事实证明 PHP 支持已损坏。YaST 想要安装 apache2-mod_php5 包,该包在 openSUSE Leap 15.0 或 SLE15 中不可用,有一个更新的 apache2-mod_php7 包。
在检查其他必需的软件包后,事实证明一些其他 Apache 模块也存在类似的问题。为了避免将来再次出现此问题,我们添加了一个额外的测试,该测试检查所有潜在已安装软件包的可用性。如果存在新版本或软件包已删除,我们应该通过持续集成提前收到通知,而不是稍后收到用户错误报告。
敬请期待
当然,除了上述亮点之外,我们还修复了几个小的和中等错误。我们计划继续以多种方式改进 YaST……并及时向您更新。所以不要走太远。






