Leap 42.2 处于 Alpha 阶段,SLE12-SP2 处于 Beta 阶段,我们的重点是修复错误,因此本次报告中没有太多新奇的内容。不过,这里有一些您可能会感兴趣的内容。
安装程序内存占用减少
对于我们的 SLE 用户,我们承诺在仅配备 512MB RAM 的机器上进行安装。对于 Tumbleweed,需要 1GB 的内存——因此情况相对宽松。
但是,请注意在安装过程中必须保存在内存中的文件系统镜像的总大小:SLE12 为 176MB(Tumbleweed:224MB)。这留给运行程序的地方不多。
随着时间的推移,大小已经显著增加,我们不得不寻找节省空间的地方。我们提出了一些主要的改进方向。
initrd 和安装系统(包含安装程序的文件系统镜像)共享许多文件(主要是库)。通过消除任何重叠,我们能够将 SLE12 的镜像大小减少 17MB(Tumbleweed:30MB)。
在软件包安装开始后,内核模块和一些原始 libzypp 缓存数据不再需要。通过删除 zypp 数据,我们可以节省另外 3MB,内核模块在 SLE12 中占用 29MB(Tumbleweed:50MB)。但是,我们只在内存小于 1GB 的系统上执行此操作。
因此,与可用的 512MB 相比,这些节省是相当可观的,希望能够维持一段时间…
存储重构:迈向可安装系统的又一步
现在是时候让我们的存储层重构证明它能够完成实际工作了。因此,我们将新代码集成到一组 修改后的 Tumbleweed ISO 镜像 中,这些镜像由 OBS 自动生成。它们仍然不能用于安装系统,但安装程序已经能够启动并到达语言选择屏幕(我们想要达到的第一个里程碑)。
我们已经有了在模拟测试环境(单元测试)中工作的代码,现在我们有了一种在实际安装程序中使用该代码的方法。敬请期待更多令人兴奋的消息!
让许多扩展在屏幕上正确显示
对于 SUSE Linux Enterprise,我们提供了如此多的可选模块,以至于它们的列表无法在较低分辨率的屏幕上显示。以下是修复之前屏幕的外观——复选框小部件及其标签不合适,因此它们的底部被裁剪了。
我们必须确保 YaST 适用于不同的界面,包括基于文本的 ncurses。这限制了我们在设计界面时可以使用的控件集,因此找到解决这类问题的方案并不总是容易的。我们还利用这个机会添加了 Beta 扩展的过滤器,如以下屏幕截图所示。
最后,您可以看到包含 Beta 扩展的所有扩展的外观。我们现在在右侧有一个滚动条,而不是裁剪元素。
存储重构:LVM 单元测试
存储层重构的下一步是添加对 LVM 的支持,因为目前仅支持常规分区。我们总是编写大量的单元测试,以确保不同的部分在集成到安装程序中的之前能够独立工作。在此冲刺期间,我们创建了所有用于在这样的级别测试 LVM 的基础设施。有了它,我们就可以开始编写可靠的代码来处理 LVM(我们已经开始这样做)。
改进系统角色模式处理
我们最近在安装过程中引入了系统角色的概念。所选角色会影响软件包模式的选择。但是,我们意识到这些角色并没有完全覆盖默认软件包选择。在本次冲刺中引入的修复之前,与桌面相关的模式会包含在 KVM 服务器角色 中,因此 systemd 目标是图形化的。
现在,仅选择了明确针对 KVM 角色设计的 3 个模式,没有与桌面相关的模式。相应地,系统启动到文本模式。
存储重构:启动的未来
我们在之前的几篇文章中解释了我们如何与 Grub 和硬件架构专家合作,以确保新的存储层始终做出明智的分区建议。为此,RSpec 证明是一个出色的工具。它不仅允许我们对代码进行全面的单元测试,而且生成的输出也已成为讨论在每种可能情况下系统预期行为的完美基础。
在此冲刺期间,我们花了很多时间与 SUSE 的 Grub 大师 Michael Chang 一起定义 x86 架构中最佳的分区方案。一旦我们有了可读且无歧义的规范,我们就修改了我们的代码,以确保相关的 RSpec 测试生成与 相同的规范 作为输出。这样,我们确保我们的代码有效并且 100% 符合专家的期望。
感谢 Michael 无限的耐心解答我们的问题,并提出了一种创新的使用 Grub2 的方法,它将允许我们在许多棘手的情况下启动,几乎消除了在大多数情况下引入单独的 /boot 的需要。
结论
如前所述,本次冲刺的大部分时间都花在了追查错误上……我们预计下一次冲刺在这方面也不会有太大不同。尽管如此,我们希望本文包含足够的新内容,让您保持娱乐并了解 YaST 战壕中正在发生的事情。
三周后见!




