概述
如意玲珑是统信软件自研的开源软件包格式,定义了新的应用程序管理范式,覆盖了应用程序从开发到分发,再到运行的全生命周期。
入门
如果您是第一次使用如意玲珑,推荐阅读快速上手,了解如何通过如意玲珑搜索、安装和运行应用。
如果您是应用开发者,想了解玲珑包格式,或者通过玲珑包格式分发应用,推荐从构建第一个如意玲珑应用开始,完成一次完整的构建流程。
为什么需要如意玲珑
在传统包格式管理体系中:
- 通常需要专业的系统维护者来维持系统依赖的正确性和稳定性,对于独立应用的分发不太友好。
- 应用安装过程中权限过大,极易破坏系统稳定性。
- 系统与应用高度耦合,系统难以在持续演进的同时提供稳定的 ABI,使得应用的可用性、开发和维护周期变的不可控。
- 不同发行版使用不同应用包格式,应用开发者需要进行重复打包、适配工作,维护成本高。
如意玲珑的优势:
- 依托容器化技术,玲珑通过提供稳定的基础运行环境,将系统与应用程序的运行环境隔离,用户无须担心安装软件会破坏系统依赖。
- 应用可以做到一次编译、处处运行,极大程度降低了跨发行版/跨版本的维护成本。
- 全工具链默认以非 root 用户运行,配合 Rootless 容器技术,减少攻击面,提升系统安全性。
- 支持应用增量更新。
对比
| 特性 | 如意玲珑 | Flatpak | Snap | AppImage |
|---|---|---|---|---|
| 打包桌面应用 | ✔ | ✔ | ✔ | ✔ |
| 打包终端应用 | ✔ | ✔ | ✔ | ✔ |
| 处理服务器应用 | ✔ | ✘ | ✔ | ✘ |
| 打包系统服务(root 权限) | ✘ | ✘ | ✔ | ✘ |
| 主题功能正常 | ✔ | ✔ | ✔ | ✔ |
| 提供库托管服务 | ✔ | ✘ | ✘ | ✘ |
| 库/依赖来源 | 包自身携带 | |||
| 宿主系统 | 包自身携带 | |||
| SDK | 包自身携带 | |||
| Snap Base | ||||
| 商业支持 | ✔ | ✘ | ✔ | ✘ |
| 应用商店数量 | 预计 4700+ | 1400+ | 6600+ | 1300+ |
| 开发工具支持 | linglong-builder | GNOME Builder | electron-builder | |
| 容器支持 | ✔ | ✔ | ✔ | ◐ (官方不提供,技术上可行) |
| rootless 容器 | ✔ | ✘ | ✘ | ✘ |
| 不安装运行 | ✔ (提供 Bundle 模式) | ✘ | ✘ | ✔ |
| 不解压运行 | ✔ (提供 Bundle 模式) | ✘ | ✔ | ✔ |
| 自分发/绿色格式分发 | ✔ | ✘ | ✘ | ✔ |
| 支持 Wine 应用运行 | ✔ | ◐ (理论可行 | ◐ (理论可行) | ◐ (使用 LD 修改 open 调用,兼容性差) |
| 离线环境支持 | ✔ | ✔ | ✔ | ✔ |
| 权限管理 | ✔ | ✔ | ✔ | ✘ |
| 中心仓库 | mirror-repo-linglong.deepin.com | FlatHub | Snap Store | AppImageHub |
| 多版本共存 | ✔ | ✔ | ✔ | ✔ |
| 点对点分发 | ✔ | ✔ | ✔ | ✔ |
| 应用升级 | 仓库升级 | 仓库升级 | 仓库升级 | 官方工具升级 |
文档内容与阅读方式
- 入门指南面向第一次接触如意玲珑的用户和应用开发者,介绍如意玲珑、安装方法和基本使用流程。终端用户可以从快速上手开始,开发者可以继续构建第一个如意玲珑应用。
- 用户手册介绍应用的安装、运行、升级、卸载、仓库配置和镜像站点等日常操作,并提供常见问题和排查方法。
- 开发者文档介绍应用打包规范、
linglong.yaml、模块管理、多架构构建、调试、CI 和分发流程。建议先完成开发者入门,再根据实际工作查阅对应主题。 - 参考文档收录 Base、Runtime、Extension、容器和 OSTree 等基础概念,以及
ll-cli、ll-builder、ll-pica等工具的命令参考。此部分适合按需查询,不要求从头到尾阅读。 - 精选课程提供完整的构建练习,包括在容器内或本地编译应用、使用 Git 和 Patch 管理源码,以及使用自动化测试套件,适合在完成开发者入门后继续学习。
获取帮助
遇到任何使用、构建或运行问题时,请先查阅提示与常见问题,无法自行解决时,可以通过以下渠道交流、提问,并在提问时附上系统版本、如意玲珑版本、执行的完整命令和错误日志。
- 用户和开发者都可以前往 deepin 社区发帖交流。
- 开发者确认问题可以复现后,可通过 GitHub Issues 提交反馈。请按问题模板填写复现步骤、预期结果、实际结果和环境信息。