文档
探索 YaST 开发
探索 YaST 开发
YaST 由多个组件组成,这些组件协同工作,但它们分布在多个软件包和仓库中。为了熟练掌握 YaST 开发,了解每个组件的作用、它们之间的关系以及它们在 GitHub 基础设施中的位置至关重要。这在 YaST 架构 文档中进行了说明。
这个复杂的系统以一致的方式转换为文件和文件夹,贯穿 YaST 的所有仓库以及安装的系统中,具体细节请参阅 YaST 代码组织描述。
YaST 的核心系统使用多种语言实现,但几乎所有功能都可以从 Ruby 轻松访问,Ruby 是实现几乎所有模块的语言。 YaST Ruby 绑定文档 包含全面的信息,不仅介绍了如何从 Ruby 访问 SCR 或 WFM,还介绍了从 YCP 语言过渡到 Ruby 期间使用的传统模式,例如 Ops 或 Builtins。
YaST 提供了一个基本的 API,用于访问 Linux 系统配置的各个方面,从网络到软件包管理,从硬件状态到 systemd。YaST 基本库提供对该 API 以及 YaST 特定机制和概念的访问。完整的文档可以在 Rubydoc 上的 yast-yast2 页面 上找到。
在最低层,YaST 中的几乎每个操作都依赖于一个或多个代理。 yast-core 的 GitHub 记录了通过 SCR 接口可用的所有代理。
YaST 界面依赖于 libYUI,这是一个提供图形用户界面(Qt、Gtk)和基于文本的用户界面(ncurses)抽象的引擎。YaST 代码通过 UI 绑定 与底层的 libYUI 系统交互。上述 Ruby 绑定提供了一些 快捷方式,以便更直接地使用 UI 绑定。
即使通过非常方便的包装器使用 libYUI,UI 参考文档 和来自原始 C++ API 的 UI 布局和事件指南 仍然是了解每个类和方法在底层如何工作的最佳信息来源。目前,也为该 API 提供了新的动态生成文档。
YaST 不仅是 Linux 配置的瑞士军刀,它还是 openSUSE 和 SUSE Linux 所有版本中使用的非常灵活和可配置的安装程序。为了了解安装过程中不同组件的交互方式,从 Linuxrc 到最终的安装步骤,包括配置建议或分区器,强烈建议阅读 yast-installation 模块的文档。
那些希望迈出 YaST 开发第一步的人可以按照标题为"创建 YaST journalctl 模块" 的教程。该文档面向没有 YaST 先验经验的开发人员,展示了一个从头开始开发的 YaST 模块的非常简单的示例,并提供了 YaST 架构和开发工具的良好概述。
在开发或调试 YaST 时,有一些注意事项可能非常有帮助。其中一些不仅针对开发人员,也针对用户,并收集在 openSUSE wiki 的 YaST 技巧页面 中。
除了这些技巧,您还可以在 YaST 开发技巧和窍门 文档中找到一些有用的信息。