以htop为例,实现一个简单的玲珑应用Demo
先创建一个linglong.yaml配置文件用于构建容器: linglong.yaml:
version: "1" package: id: demo.htop.linyaps #ID name: demo.htop #包名 version: 3.3.0.0 #版本号 kind: app #应用类型 description: | 描述:这是一个Demo command: - RUN #执行你的二进制文件,建议自己创建一个RUN文件方便给应用配置环境变量 base: org.deepin.foundation/23.0.0 #runtime: org.deepin.Runtime/23.0.1 #该应用用不到qt库所以可以注释掉减少体积 build: | #把除了yaml、layer、linglong的其它文件复制到玲珑容器内部 cp -av $(ls -A | grep -vE '\.yaml$|Makefile$|.deb$|ld-test$|missing_lib.list$|\.layer$|^linglong$|^tmp$') $PREFIX; #将要执行的二进制文件放到本文件同级的bin目录下 #将二进制文件依赖的库放到本文件同级的lib目录下
然后我们再创建2个目录分别是bin和lib,现在目录结构如下
其中bin目录里面放我们要构建的二进制文件htop,lib目录里面放二进制文件所依赖的库文件,现在目录结构如下:
htop是哪里来的: #假设当前目录为demo,即yaml配置文件所在的目录
cp /usr/bin/htop bin #复制系统的htop到demo/bin/目录
RUN文件:
#!/bin/bash export TERM=xterm-256color #设置所需的环境变量 htop #启动程序 #为什么创建RUN而不是执行在yaml里面启动htop? #因为yaml里面的command:只支持一个参数,这样就没办法配置环境变量,所以写个RUN文件作为桥梁。
lib目录里面的库文件:
这两个是htop所需要的库。 我们试试删除它用来看看会发生什么
#开始构建 ll-builder build
#尝试运行 ll-builder run
哦豁,报错了。提示找不到"libnl-3.so.200"库 现在怎么办?
libnl-3.so.200
#由于我们本地安装了htop说明本地已经具备了运行的库文件 #那么我们可以利用dpkg -S 查询这个库 dpkg -S libnl-3.so.200
然后我们复制到demo的lib目录
cp /lib/x86_64-linux-gnu/libnl-3.so.200 lib
现在结构如下,然后我们用这个方法把缺失的另一个库也补全,最终结果就是开始的那张图
现在我们尝试构建成玲珑包并运行看看
ll-builder build #开始构建 ll-builder run #尝试运行,确定运行正常我们就可以导出玲珑包了 ll-builder export #导出玲珑包
最终runtime.layer结尾的就是我们需要的玲珑包
看看最终运行效果:
本Demo源码下载:demo.zip 解压后在demo目录打开终端执行下面命令测试构建和运行
ll-builder build && ll-builder export && ll-builder run
小工具cplib,由ChatGPT编写,作用是读取二进制所依赖的库并复制到指定位置。 用法:
#用法:cplib 二进制文件位置 复制到目标位置 ./cplib bin/htop lib
cplib.zip
我只想知道,玲珑运行deepin邮箱之后,能不能直接最小化?加什么参数,或者只能自己写脚本?
就是单纯的某些应用启动的时候,直接放入后台就行了,比如微信、QQ、邮箱、云盘这些办公软禁
Featured Collection
Popular Events
以htop为例,实现一个简单的玲珑应用Demo
先创建一个linglong.yaml配置文件用于构建容器:
linglong.yaml:
然后我们再创建2个目录分别是bin和lib,现在目录结构如下
其中bin目录里面放我们要构建的二进制文件htop,lib目录里面放二进制文件所依赖的库文件,现在目录结构如下:
htop是哪里来的:
#假设当前目录为demo,即yaml配置文件所在的目录
RUN文件:
lib目录里面的库文件:
这两个是htop所需要的库。
我们试试删除它用来看看会发生什么
哦豁,报错了。提示找不到"
libnl-3.so.200"库现在怎么办?
然后我们复制到demo的lib目录
现在结构如下,然后我们用这个方法把缺失的另一个库也补全,最终结果就是开始的那张图

现在我们尝试构建成玲珑包并运行看看
最终runtime.layer结尾的就是我们需要的玲珑包
看看最终运行效果:
本Demo源码下载:demo.zip
解压后在demo目录打开终端执行下面命令测试构建和运行
小工具cplib,由ChatGPT编写,作用是读取二进制所依赖的库并复制到指定位置。
用法:
cplib.zip