对于第三方库不多,qmake一键配置编译的项目很方便
看起来很棒
不明觉厉
而玲珑容器启动时,会将容器内容 files 文件夹 挂载至
/opt/apps/${appid}
文件夹下,故可以近似认为 前缀 为/opt/apps/${appid}/files
。以此类推,可执行文件的实际位置为/opt/apps/${appid}/files/bin/可执行文件名称
,所以linglong.yaml
中command
启动指令部分也需要如此填写,而不是常见的/usr/bin/可执行文件名称
。
但是安装之后为什么程序是在/var/lib/linglong这个目录下的?跟你的这个说的opt路径不一样
这些步骤要是在deepin-IDE里面图形化完成就方便多了
而玲珑容器启动时,会将容器内容 files 文件夹 挂载至
/opt/apps/${appid}
文件夹下,故可以近似认为 前缀 为/opt/apps/${appid}/files
。以此类推,可执行文件的实际位置为/opt/apps/${appid}/files/bin/可执行文件名称
,所以linglong.yaml
中command
启动指令部分也需要如此填写,而不是常见的/usr/bin/可执行文件名称
。
但是安装之后为什么程序是在/var/lib/linglong这个目录下的?跟你的这个说的opt路径不一样
因为容器运行的时候有挂载操作,具体原理就不清楚了
具体现象可以找一下 @打击越 以前发的一篇帖子 玲珑软件qq浏览器问题,里面就是 QQ浏览器 玲珑版本的 desktop 文件,安装位置明明在 /persistent/linglong/layers/xxx
里面,但是 desktop 文件中写的位置是 /opt/apps/xxx
,而且还能正常启动。
这些步骤要是在deepin-IDE里面图形化完成就方便多了
赞同
教程很有帮助,可对玲珑的运作机制和各种挂载还是不太理解。
教程很有帮助,可对玲珑的运作机制和各种挂载还是不太理解。
同样不理解,但是能用.jpg
Popular Events
More
玲珑入门教程:从源代码开始构建玲珑格式应用
第一步:前期准备
在终端中执行
安装
ll-builder
工具第二步:创建项目
由于需要从源代码构建玲珑格式应用,故可以跳过
ll-builder create
操作,无需创建玲珑对应文件夹,直接在工程源代码顶层目录编写linglong.yaml
文件即可(可使用官网提供的完整的 模板文件 )。第三步:编辑
linglong.yaml
base
和runtime
即可。更复杂的构建环境可参考构建 计算器,在构建应用前拉取所需依赖代码,优先构建所需依赖。理解安装位置“前缀”
以我们所熟知的方式来理解,一般可执行文件需要放到
/usr/bin
文件夹下,在终端尝试执行时才能被找到;.desktop
文件提供了启动的入口,想在启动器中看到应用图标,一般放到/usr/share/applications
文件夹下;而图片文件会放到/usr/share/icons
文件夹中具体的图标主题及尺寸和分类文件夹下。这其中,/usr
就是所有文件安装位置的 前缀。根据 GNU 编码标准,前缀 的默认值一般为
/usr/local
;而构建 deb 格式软件包时,一般会使用/usr
前缀。而玲珑容器启动时,会将容器内容 files 文件夹 挂载至
/opt/apps/${appid}
文件夹下,故可以近似认为 前缀 为/opt/apps/${appid}/files
。以此类推,可执行文件的实际位置为/opt/apps/${appid}/files/bin/可执行文件名称
,所以linglong.yaml
中command
启动指令部分也需要如此填写,而不是常见的/usr/bin/可执行文件名称
。检查修改工程源代码
理解了 前缀 的概念,就要检查工程源代码的安装位置前缀了。
qmake
工程中,默认安装位置前缀一般为/opt/$${TARGET}
文件夹,如可执行文件就被放在/opt/$${TARGET}/bin
文件夹中。此处可能需要修改.pro
文件,将前缀修改为/opt/apps/${appid}/files
文件夹,保证玲珑容器启动后文件位置正确。第四步:构建应用
在工程源代码顶层目录(
linglong.yaml
同级目录)打开终端,执行ll-builder build
命令即可。第五步:测试运行应用
在工程源代码顶层目录(
linglong.yaml
同级目录)打开终端,执行ll-builder run --exec 可执行程序名称
,可测试在玲珑容器环境内启动应用。第六步:导出 layer 文件
在工程源代码顶层目录(
linglong.yaml
同级目录)打开终端,执行ll-builder export
命令,即可在目录中生成${appid}_${version}_${arch}_develop.layer
和${appid}_${version}_${arch}runtime.layer
文件。第七步:测试安装
layer
文件在工程源代码顶层目录(
linglong.yaml
同级目录)打开终端,输入ll-cli install
并输入空格分隔后,将文件夹中的runtime.layer
文件拖入终端,按回车执行,将layer
文件安装至本地玲珑环境中。安装成功后,应该可以在启动器中看到该应用,并进行启动和使用测试。
总结
至此从源代码构建玲珑格式应用已完成。
本文举例的项目使用
qmake
构建,依赖简单,且支持构建时外部传入${PREFIX}
设置文件安装位置,构建为玲珑格式应用非常简单。若项目使用cmake
或其他工具构建,同理需在工程内修改安装前缀,或在linglong.yaml
构建部分传入参数进行设置,否则即使构建成功,也会出现容器内无法找到可执行文件,或安装后启动器没有图标等各种问题。