又一个开发冲刺结束了。时间过得真快!在我们的 上一篇文章 中,我们已经报道了 Tumbleweed 的分支以及即将发布的版本,以及预期的后果:一些很棒的功能将登陆到不太保守的 Tumbleweed 中。
我们仍然投入了大量精力来完善即将发布的稳定版本(SLE12-SP2 和 Leap 42.2),但在本次冲刺中,我们终于找到了一些时间来玩一玩。这很好,因为报道新功能比报道错误修复更有趣。:simple_smile
使用 AutoYaST 导入授权密钥
通过 SSH 登录时,应该优先使用公钥认证而不是密码认证。直到现在,在 AutoYaST 中设置所需的 authorized_keys 文件的最佳方法是使用 files 部分。
然而,这种方法既繁琐又容易出错,因为您需要确保设置正确的拥有者、权限等。此外,您还需要将用户定义(用户名和主目录)与文件定义保持同步。
AutoYaST 现在支持为每个用户指定一组公钥,语法非常简单明了
<user>
<username>suse<username>
<authorized_keys config:type="list">
<listentry>ssh-rsa your-public-key-1</listentry>
<listentry>ssh-rsa your-public-key-2</listentry>
<authorized_keys>
<user>
AutoYaST 会负责写入文件并设置所有权和适当的权限。
在记录这个新功能时,我们意识到 AutoYaST 关于用户管理的文档可以更详细,这导致我们…
改进文档
通常,开发人员喜欢创建充满酷炫功能程序,但讨厌编写文档。幸运的是,有些人喜欢编写文档,并将所有这些功能展现出来。我们已经在之前的报告中提到过,我们对 SUSE 文档团队完善和发布我们的文档草案表示感谢,以及该过程的开放性和直接性。
我们更新了 YaST 文档,以包含有关安装程序自更新功能的信息,该功能将在 SUSE Linux Enterprise 12 SP2 和 openSUSE Leap 42.2 中首次亮相。作为 同一个 pull request 的一部分,并且在 AutoYaST 方面,进行了一些额外的改进,包括清理了一些关于 SUSE 注册的重复信息。
另一方面,并且作为上述新功能的结果,AutoYaST 关于用户管理的文档已被重写,添加了有关组、用户默认值和登录设置等缺失的信息。
我们所有的 pull request 都已经合并到 doc-sle 仓库中。在稍后的时间,SUSE 文档团队将审查和完善所有新内容(包括我们的内容),并发布包含所有未经审查贡献的最新版本的在线文档。如果您不想等待,您可以按照 doc-sle 仓库的 README 文件 中的非常简单的说明,轻松生成 HTML 或 PDF 版本的文档。
我们已经提到过我们喜欢文档团队的开源、程序员友好的流程了吗? ![]()
存储重构:你可以触摸到的东西
我们承诺会发布有关存储重构的消息,现在它们来了。我们在 storage-ng OBS 仓库 中定制的 Tumbleweed 镜像现在可以在安装过程中执行一些简单的操作,并将结果显示给用户。
首先,在提出时区设置时,它将像往常一样检查磁盘中的 MS Windows 安装,以判断硬件时钟是否应设置为 UTC。新闻是该检查是由新的存储堆栈执行的,该堆栈在每个冲刺中都提供更多功能。
更重要的是,安装程序将显示使用新的堆栈计算的分区方案。如您在下面的屏幕截图中看到的,该屏幕比常规 Tumbleweed 中的屏幕简单得多。目前还没有更改设置或运行专家分区的按钮。这并不意味着该功能不存在,只是我们更喜欢先专注于将所有安装程序步骤修改为使用新的堆栈(这将使我们能够使用 openQA),然后再完善每个屏幕以添加所有选项。
目前,该系统仅适用于包含 MS-DOS 风格分区表的磁盘,并且将始终建议基于分区的设置(不使用 LVM)。这是因为我们更喜欢先解决最困难的场景。使用 LVM 和/或 GPT 分区表比已经支持的场景更具挑战性。
通过节省 OBS 构建能力来减少全球变暖
如您所知,我们使用出色的 Open Build Service (OBS) 来生成 YaST rpm 包和 openSUSE/SLE ISO 镜像。每次任何组件的源代码发生更改时,OBS 都会重建该组件以及所有依赖于它的包。
我们心爱的 openSUSE 和 SLE 发布经理告诉我们,有几个 YaST 包经常触发其他 YaST 包的重建,而这些包又触发了另一个重建,以此类推。 ![]()
上述问题会减慢新 ISO 镜像的创建速度,干扰持续集成过程(在 Tumbleweed 中尤其明显),并浪费宝贵的 OBS 资源。
在本次冲刺中,我们将 YaST 的重建时间减少了 30%。这当然很有趣,但了解我们如何做到的细节可能对许多读者来说更有趣。我们担心解释可能过于复杂和技术化,不适合本报告…这给了我们另一个写博客的机会。因此,请期待一篇包含有趣的技术内容和疯狂图表的文章。
针对 LiveCD 的安装程序的一些调整
在开源项目上工作的好处之一是,您创建的项目的发展有时会令您惊讶。很久以前,YaST 团队停止了对 live 安装程序的支持。它对保持其活跃状态来说要求太高,同时还要进行我们的常规工作(YaST 和常规安装程序的错误修复和新功能)。
最近,live 安装程序已从 Tumbleweed 中删除,这是它仍然可用的唯一系统(在过去从稳定的 openSUSE 版本中删除后)。人们可能会期望有人会站出来并承担 live 安装程序的维护责任。
但实际上发生的情况是 Fabian Vogt 决定尝试一种我们从未考虑过的不同方法——将标准网络安装程序添加到 Tumbleweed 的 LiveCD 镜像中。他成功地使其工作得很好,并要求我们帮助调试一些问题。我们通过禁用 LiveCD 中的自更新功能(它根本无法在那种情况下工作)解决了最初的问题。
仍然存在一些问题需要解决才能使一切正常工作,但如果 Fabian 和其他人不放弃,我们将继续协助他们,以便将安装程序带回到 LiveCD…即使是以意想不到的方式。
UI 设计师
YaST 用户界面设计和编码非常困难。主要问题是,没有交互式 UI 设计师可以构建对话框或修改现有对话框。相反,您必须编写新代码或修改现有代码,该代码创建并打开对话框。然后,要查看您的更改,您必须启动 YaST 模块,转到相应的对话框并检查其内容。如果它看起来不像您想要的,您必须关闭它,修改代码并再次启动它。一次又一次…非常烦人,特别是当对话框隐藏在模块的深处,您需要采取几个步骤才能到达那里时。
在 Hack Week 14 期间,启动了一个改进这种情况的项目。我们已经有一个可以通过 Ctrl+Shift+Alt+Y 键盘快捷键打开的对话框间谍,但它是只读的。您只能检查对话框树并查看所选小部件的详细信息,但无法更改任何内容。
在 Hack Week 项目期间,它得到了改进,以便可以编辑现有小部件的属性、删除它们甚至添加一些新小部件。但是,该代码更像是一个概念验证,而不是可以合并到 YaST UI 并发布给公众的。
因此,我们决定在本冲刺中完成它。正如往常一样,它比预期的更难…但我们做到了,这里有一个简短的演示,展示了它的工作方式以及您可以做的事情

这个新工具还远非完美。最明显的缺失功能是对话框会就地更改,您无法保存或导出更改。关闭对话框后,一切都将丢失。但它仍然可以帮助您在 UI 中尝试事物或快速制作原型,尤其是在与界面设计师讨论解决方案时。希望我们将来能找到更多时间来使其更好。
存储重构:加密支持
虽然分区方案仍然不支持加密或 LVM,但我们在底层库(libstorage-ng)中实现了完整的 LUKS(加密)支持。加上上一个冲刺中实现的 LVM 支持,这使得新的库已经成为旧 libstorage 在许多情况和场景中的有效替代品。现在主要是在每个 YaST 组件中从一个版本切换到另一个版本,从我们计划在下一个冲刺中开始重新设计的专家分区器开始。
正如往常一样,库中的新功能很难用插图来说明,除非您接受动作图作为屏幕截图。在这种情况下,您可以看到库在创建加密主卷时执行的操作序列。
同步 Leap 和 Tumbleweed 中的键盘布局和控制台字体
除了我们的 Scrum 冲刺之外,我们已经与 openSUSE 的 X.Org 和 systemd 维护者一起稳定地工作,以重新设计 YaST 如何管理键盘映射和控制台字体。一些更改已在 Tumbleweed 中引入,但从未进入 SLE(或 Leap),因为它们需要更多的测试。
最近,Leap 的发布经理 Ludwig Nussel 决定希望将 42.2 与 Tumbleweed 同步,使用新的方法而不是更保守的 SLE 方法。因此,我们还投入了大量时间与 Stefan Dirsch(X.Org)和 Franck Bui(systemd)协调,以便在 Leap 42.2 的 beta2 版本发布之前及时推动这些更改…及时引入 bug#1000565,该 bug 被荣幸地列入 42.2 Beta2 的 最烦人的 bug 列表。
好消息是,该 bug 的修复已经提供(请参阅 bug 报告),现在您可以终于测试新的字体和键盘映射了。请这样做并提供反馈,以便获得正确本地化的 Leap 42.2 版本。
下次再见
正如往常一样,这篇文章只是本次冲刺中最有趣部分的一个快速概述,因为大多数人(包括我们自己)不想阅读关于这项工作的无聊部分,即主要是修复错误。
好消息是,这次您不必再等待三周才能阅读有关 YaST 的有趣内容。如前所述,我们计划发布一篇关于减少 YaST 构建时间的博客文章。我们可能还会发布一篇关于 YaST 蜥蜴访问 Euruko 2016 的文章。
所以这次比以往任何时候都更…敬请期待!


