重新思考安装程序

如你所知,YaST 不仅是 (open)SUSE Linux 发行版的控制中心,它也是安装程序。而且,在这方面,我们认为它是一个胜任的安装程序。然而,随着时间的推移,YaST 在某些方面显示出它的年龄感。

在 2021 年夏天,团队讨论了 YaST 在不久的将来应该是什么样子。我们考虑了许多想法,但让我们专注于以下这些

  • 缩短安装过程。
  • 将用户界面与 YaST 内部结构解耦。
  • 添加一个基于 Web 的界面。我们过去有过 WebYaST,但它并非设计用于作为安装程序。

我们尝试过这些想法(例如,参见 $INSTALLER:80使 openSUSE 安装程序更短),但我们从未制定出具体的计划。

快进到 12 月:在假期之前,我们决定恢复研究并构建一个基于 Web 的安装程序的概念验证。我们 创建了一些足够简单的东西,坦率地说,甚至根本无法工作。但在 1 月的团队会议上讨论了整体方法后,我们认为投入更多时间可能是一个好主意。

然而,在仅仅开始编写“某种东西”之前,我们想花时间以正确的方式定义项目,制定计划并征求反馈。

这不仅仅是关于用户界面

提供替代的基于 Web 的界面只是冰山一角。在这样做之前,我们需要进行许多内部更改,例如解耦用户界面代码或添加 D-Bus 接口。

幸运的是,我们已经在几个关键领域(存储、网络等)改进了 YaST 内部结构。然而,我们还没有达到那里:仍然有很多工作要做。

下图概述了该想法的主要组件。当然,随着项目的发展,它可能会发生变化,但作为起点来说,它看起来不错。

D-Installer Overview

好处

遵循这种方法,我们可以预见 YaST 许多好处。例如

  • 更好的用户界面: libYUI 为我们服务得很好。然而,它施加了一些我们希望克服的限制。
  • 可重用性: YaST 包含许多有用的逻辑,这些逻辑可供其他工具使用。
  • 更好的集成: 通过提供 D-Bus 接口,将 YaST 的部分集成到您自己的工作流程中应该更容易。
  • 多语言: 最终,使用 D-Bus 可能会允许我们使用其他编程语言。
  • 贡献者: 我们预计通过使代码更易于访问和使用广泛使用的技术,将会有更多的人为该项目做出贡献。

问答

我们预计您会有问题,对吧?所以让我们尝试预测一些问题。

您是否正在弃用当前用户界面?

不。我们只想提供一个替代且某种程度上简化的界面。实际上,我们预计基于 Web 的 UI 在短期内不会像当前 UI 那样强大。

哪些模块将获得新的界面?

目前,我们将其限制在安装程序。我们不计划向任何其他模块添加基于 Web 的界面。

AutoYaST 呢?

关于 AutoYaST,想法是使用与标准安装相同的代码库,同时保持向后兼容性。因此,您可以重用您的 AutoYaST 配置文件,而不会出现重大问题。

您是否正在从 Ruby 迁移到另一种语言?

不。我们只是认为,在未来,有可能用不同的语言重新实现 YaST 的一部分(或编写新的部分)。但我们不计划在短期内替换 Ruby。

它什么时候发布?

我们还不知道。

难道不是 Anaconda 开发人员正在做的事情吗?

大部分是的。我们很高兴阅读 他们的公告,因为它在某种程度上验证了我们对未来的看法。但是,当然,Anaconda 处于更好的位置(例如,它已经具有 D-Bus 接口)。

你会依赖 Cockpit 吗?

我们还不知道,但是……为什么不呢?Cockpit 是一个非常棒的项目,我们已经 发布了一个模块 用于 Wicked。所以也许我们可以寻求一些合作。

为什么它被称为D-Installer

嗯,这只是一个文字游戏。我们将仓库命名为“yast/the-installer”,并且由于它是一个基于服务的安装程序,它演变成了d-installer。当然,即使是项目名称也不是一成不变的,所以我们欢迎更好的建议。:wink:

结论

我们正处于一个令人兴奋的项目早期阶段,该项目应该带领我们重新定义 YaST 的未来。当然,我们很乐意听取您的意见。所以,请不要犹豫 联系我们 如果您有任何意见或问题。

祝您玩得开心!