玲珑(Linglong),在交给开放原子基金会后又叫如意玲珑(Linyaps)。最开始只是 deepin 的二级包管理器,现在已经在其他 Linux 发行版如:Fedora Debian Arch 都可以安装使用。
它是一个类似 Flatpak 基于容器的包管理方案,同时它导出的 uab 文件也和 appimage 类似可以直接运行 (可以说是缝合怪了)
在打包之前首先要安装玲珑相关组件,如 bin、builder、box。 官网这里有各种发行版安装的方式:https://linyaps.org.cn/guide/start/install.html
安装完后,接下来以一个经典的 c 程序举例(输出一段 Hello World 字符)。从编译源码到将二进制打包。
首先使用 ll-builder create [名称]
来创建一个玲珑包项目,该目录下会生成一个默认的 linglong.yaml
模板,可以做一些调整,我写成了这样:
version: "1"
package:
id: com.test.demo
name: demo
version: 0.0.0.1
kind: app
description: |
这是一个玲珑测试 demo
command:
- /opt/apps/com.test.demo/files/demo
base: org.deepin.base/23.1.0
build: |
echo "正在 gcc 编译"
gcc demo.c -o ${PREFIX}/demo
其中 ${PREFIX}
代表指向 /opt/apps/com.test.demo/files/ 这个的地方,而这相当于虚拟的根文件系统,这在宿主里是不存在的。base
是玲珑基础依赖,是必须的。build
字段很好理解,就是在构建过程中所做的 shell 操作。而 command
是软件安装后运行所使用的启动命令。
demo.c 源码:
#include <stdio.h>
int main(){
printf("\nHello World\n\n");
return 0;
}
此时目录内是这样的:
├── linglong.yaml
├── demo.c
我们使用 ll-builder build
就可以进行构建,然后 ll-builder export
是打成玲珑 uab 格式,这是一个可以像 appimage 一样直接运行的程序。除此之外也可以使用 ll-cli install [uab文件]
来进行安装到玲珑本地容器中。
使用 ll-cli list
可以看到我们已经安装的玲珑包,其中可以看到我们构建好的 com.test.demo 这个包。使用 ll-cli run com.test.demo
即可运行起来。
有关玲珑的更多文档:https://linyaps.org.cn/guide/start/whatis.html
玲珑在线应用商店:https://store.linyaps.org.cn