
对于第三方库不多,qmake一键配置编译的项目很方便

对于第三方库不多,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
 同样不理解,但是能用.jpg
Popular Events
More
玲珑入门教程:从源代码开始构建玲珑格式应用
第一步:前期准备
在终端中执行
安装
ll-builder工具第二步:创建项目
由于需要从源代码构建玲珑格式应用,故可以跳过
ll-builder create操作,无需创建玲珑对应文件夹,直接在工程源代码顶层目录编写linglong.yaml文件即可(可使用官网提供的完整的 模板文件 )。第三步:编辑
linglong.yamlbase和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构建部分传入参数进行设置,否则即使构建成功,也会出现容器内无法找到可执行文件,或安装后启动器没有图标等各种问题。