我们很高兴地宣布基于 D-Installer 的第一个安装镜像已经可用。自从我们一月份的初步公告以来,我们一直在努力将一个不可用的概念验证转化为您实际可以使用的东西。

本文旨在总结项目的当前状态以及您在不久的将来可以期待的内容。此外,我们将深入研究一些内部细节,以便您更好地了解我们正在遵循的路径。

D-Installer (某种程度上) 正常工作

D-Installer 可以在简单的场景下安装 openSUSE Tumbleweed。但是,请记住,它仍然是一个实验项目,因此如果您决定尝试一下,最好使用虚拟机。毕竟,我们不想为任何数据丢失负责。 :wink:

您可以从 OBS 获取 Live ISO。我们尽可能频繁地刷新此镜像,以包含最新的 D-Installer 更改以供测试。ISO 启动后,使用“root”作为用户名和“linux”作为密码登录安装程序,您应该会看到“安装摘要”页面。

Installation summary

由于我们未在镜像中包含任何仓库,因此机器需要连接到互联网才能访问 Tumbleweed 包。

D-Installer 目前的样子

“安装摘要”页面是 D-Installer 用户界面的中心点。它允许用户一目了然地检查安装设置。您可以将此页面视为 YaST 中的“安装设置”屏幕。主要区别在于,在这种情况下,它是起点,因此您无需遍历任何向导即可进入它。

YaST installation overview

概述简化为几个部分:语言和产品选择、分区设置和用户管理。

毫不意外,语言选择器允许设置安装系统中的语言。请注意,此时用户界面尚未本地化,因此它不会影响安装程序本身。此外,我们希望将来添加支持以更改键盘布局。

软件选择目前非常有限。D-Installer 允许您选择要安装的产品,仅此而已。目前不支持选择模式或系统角色。

关于分区,D-Installer 依赖于 YaST 引导建议,但它仅允许选择安装系统的设备。我们计划提供 YaST 的大部分引导分区设置(使用多个磁盘、选择文件系统类型等)。

Target selection

最后但并非最不重要的一点是,D-Installer 允许配置 root 的身份验证(密码或 SSH 公钥)和/或创建第一个用户以登录安装的系统,类似于 YaST 支持的方式。

调整安装选项后,单击 安装 按钮开始安装。

Installation progress

YaST、D-Bus、React 和 Cockpit

我们承诺深入研究细节,所以我们开始吧。在架构方面,与我们在初始公告中描述的方法没有太大变化。它由三个不同的部分组成:系统服务、D-Bus 接口和 Web 用户界面。

核心是 D-Installer 系统服务,它使用 YaST 库来检查和安装系统。我们尽可能地重用 YaST 代码,但同时,我们尝试仅使用我们需要的那些部分。此服务提供 D-Bus 接口,以便用户界面可以与其交互。我们正在努力使 D-Bus 接口与业务逻辑解耦,尽管我们不计划将其替换为其他任何东西。

关于用户界面,我们决定使用 React 应用程序,并使用 PatternFly 组件构建。为什么选择 PatternFly?如果您继续阅读,您会理解原因。:-)

这些组件如何相互通信?这是一个有趣的问题。我们没有选择自己构建解决方案,而是决定依赖 Cockpit。因此,我们使用 Cockpit 的基础设施来连接 UI 和系统服务(通过 D-Bus)。我们甚至使用 Cockpit 的 Web 服务器在安装介质中公开 UI。

这实际上是使用 PatternFly 的主要原因。将来有可能在 Cockpit 模块中重用安装程序 UI 的一部分。时间会证明一切。

从现在开始的期望

我们在此迭代中学习了很多,我们将利用这些知识来制定路线图。但是,有一些我们希望尽快开展的领域,这些领域应该在这样的路线图中占据重要位置。让我们看看其中的一些。

错误报告和用户交互

我们的 D-Installer 服务可以发送有关其当前状态和安装进度的信息。但是,它在错误报告方面很糟糕,并且无法向用户请求其他信息。例如,它没有实现任何机制来请求密码,如果它在分析存储设备时发现加密磁盘。

我们认为这是一个关键要求,因此我们希望在下一次迭代中开发可靠的解决方案。

更好的软件处理

选择产品不仅仅是选择一组软件包:它可能会影响安装程序的行为。例如,如果您想安装 MicroOS,分区建议需要调整为将根文件系统以只读方式挂载。更不用说显示产品的许可协议或发行说明了。所以事情并不那么简单。

此外,我们还有系统角色的概念,这可能会影响软件选择、服务配置等。

由于有很多活动部件,我们需要定义我们在软件处理方面要走多远。当然,许可协议和发行说明是必须的。但是我们计划支持系统角色吗?很可能,是的。将支持哪些选项?以及关于选择模式或仅仅是单个软件包又如何?还有太多的问题尚未解决。

完全支持引导建议

我们不计划将分区程序带到 Web 界面中。相反,我们的计划是支持所有引导分区选项,以便您可以选择多个设备、选择不同的文件系统、启用 LVM、使用加密等。因此,从中期来看,这似乎是一个公平的交易。

用户界面

我们认为用户界面对于第一次迭代来说已经足够好了,但鉴于我们计划添加对更多功能的支持,我们需要与我们的 UX 专家合作以改进整体方法。例如,在各处使用弹出窗口远非理想。

更不用说,虽然我们正在使用 PatternFly,但我们试图坚持 EOS 设计系统原则,因此我们可能需要一些帮助。

分享您的意见

现在您已经有了一些可以尝试的东西,如果您分享您的意见,那就太好了。您可以通过 GitHub 项目页面与我们联系,或者像往常一样,在 Libera.chat 上的 #yast 频道或 YaST 开发邮件列表中与我们联系。

祝您玩得开心!

Installation finished