QQQ
deepin
2025-02-26 20:06 Reply Like 0 View the author
请问现在可用的base有哪些?
感觉现在的玲珑包都是比本体大300mb以上,实际占用空间也是这样吗?
https://linglong.dev/guide/ll-builder/manifests.html
地址404
太高深了!
https://linglong.dev/guide/ll-builder/manifests.html
地址404
以这个为准:https://linyaps.org.cn/guide/ll-builder/manifests.html
前阵子域名更换了非常抱歉~~
太高深了!
这有个玲珑的另外一位贡献者发布的教程,这个就会比较入门,也可以一并了解一下哦:https://bbs.deepin.org.cn/post/284572
以这个为准:https://linyaps.org.cn/guide/ll-builder/manifests.html
前阵子域名更换了非常抱歉~~
没事啦,顺手一点,刚好发现问题,就回复了。
这里的域名换一下
没事啦,顺手一点,刚好发现问题,就回复了。
这里的域名换一下
已修改
Popular Events
More
注:本文来自如意玲珑社区导师 @Ziggy
在Linux生态中,软件包的分发与管理一直是开发者与用户关注的焦点。如意玲珑(Linyaps)作为一种新兴的容器化应用格式,凭借其轻量化、强隔离、跨发行版兼容等特性,正在为 Linux 应用生态注入新的活力。无论是开发者还是技术爱好者,掌握玲珑应用的构建方法都至关重要。
本篇作为“如意玲珑应用构建从入门到实战”系列的第一章,将带您系统梳理玲珑应用构建的核心基础知识,涵盖构建流程、规范要求与关键配置文件。通过理解这些基础概念,您将能够为后续的实操教程打下坚实根基,从容应对从代码到安装包的每一步挑战。
在正式开始构建一个玲珑应用工程前, 我们需要对关于玲珑应用构建的基础知识有一定的认知, 以此协助我们更好地决策我们在启动构建工程前决定要准备哪些材料、进行哪一类型的操作
玲珑应用构建基本步骤
在正式开始前, 我们需要了解一个玲珑应用从资源(源代码、二进制文件等)输入到应用安装包导出所经过的基本步骤, 来确定我们需要准备哪些必要文件
玲珑应用构建基本流程:
玲
linglong.yaml
玲珑应用构建工程所需材料
结合上述的知识, 我们可以了解到一个玲珑应用在构建的全过程中, 主要涉及到以下的文件:
linglong.yaml
玲珑应用遵循的主流规范
每一款Linux桌面软件包管理方案为了能够保障完整的功能和良好的体验, 均需要遵守软件包管理方案提出的各类规范要求以最大限度发挥软件包管理方案的功能并保障应用生态体验.
如意玲珑也并不总是特立独行, 需要满足一定的规范来保障如意玲珑生态得以持续稳步发展.
目前如意玲珑生方案遵守以下主流的规范:
linglong.yaml
规范Freedesktop XDG规范
XDG_DATA_DIRS
等变量, 支持读写宿主机中的用户目录玲珑应用目录结构规范
binshare
等目录/project
foundation类: 在玲珑容器中映射为普通系统路径
/usr/bin/usr/include
等, 作为基础运行系统环境存在runtime类: 在玲珑容器中映射为runtime容器路径
/runtime/usr/bin/runtime/usr/include
等, 作为基础运行系统环境存在*默认情况下, 玲珑容器内部的环境变量已自动处理好路径识别问题, 如:
通用表达为:
玲珑应用构建工程通用资源的规范
在玲珑应用构建工程中, 不同的资源文件均需要遵循相关规范以确保构建、体验能够满足要求
icons 图标目录规范
依据玲珑遵循的
Freedesktop XDG规范
及玲珑应用目录结构规范
, 图标根据不同尺寸放置在对应的目录中主流的非矢量图标尺寸有:
16x16 24x24``32x32 48x48``128x128 256x256``512x512
为保障图标在系统中能够获得较佳的体验效果, 因此需要至少一个尺寸不小于
128x128
的非矢量图标文件, 矢量图标则不存在该限制因此, 一款玲珑应用安装目录中, icons图标目录应为以下示例:
*
scalable
目录用于放置矢量图标
文件, 一般为.svg
格式假设你的玲珑应用同时提供尺寸为
128x128
的非矢量图标文件linyaps-app-demo.png
和128x128
的矢量图标文件linyaps-app-demo.svg
, 在玲珑容器中应当表现为以下状态* 为了避免图标冲突被覆盖, 图标文件名请使用应用
唯一英文名称
或玲珑应用id
desktop 文件规范
玲珑应用兼容大部分符合
Freedesktop XDG规范
的desktop启动文件
, 其中有以下字段需要额外注意:linglong.yaml
中的command
值保持一致icons 图标目录规范
中的图标文件名一致, 此值不需要文件名后缀因此, 一个符合玲珑应用规范的desktop文件可以参考:
玲珑应用构建工程
linglong.yaml
规范正如其他传统包管理套件一样, 手动创建一个玲珑应用构建工程需要设置构建规则文件
linglong.yaml
, 在构建规则中, 则根据用途划分为全局字段
及定制化字段
.* 案例中
linglong.yaml
正文内所有空格符号、占位符均为有效字符, 请勿删除或变更格式全局字段规范
在
linglong.yaml
中, 对于不受构建类型影响的字段我们称为全局字段
, 主要有以下参考的规范:linglong.yaml
应包含以下的关键部分:runtime
及版本设置, 当base
中的基础运行库满足程序运行要求时, 此模块可删除desktop
文件的Exec
字段内容一致package
模块中存在数个子模块:app
$PREFIX
路径规则,该变量自动生成,应用所有相关文件需存放于此目录下. 构建规则中若有需要涉及安装文件的操作, 均需要安装到$PREFIX
路径下*
$PREFIX
变量名即为填写的实际内容, **请勿使用绝对路径
或任何具有绝对值作用的内容代替 **四位数字
的版本号命名规则,不符合规则无法启动构建工程base
、runtime
版本支持自动匹配最新版本尾号
,版本号可以仅填写版本号的前三位数字
.如:当base
org.deepin.foundation
同时提供23.0.0.2823.0.0.29
, 若linglong.yaml
中仅填写那么在启动玲珑应用构建工程时, 将会默认采用最高版本号的
23.0.0.29
5 玲珑应用构建工程配置文件目前不直接兼容其他包构建工具的配置文件,需要根据构建工程配置文件案例来进行适配修改:
https://linyaps.org.cn/guide/ll-builder/manifests.html
定制化字段
根据玲珑应用构建工程源文件类型, 又可将玲珑应用构建工程划分为
本地文件文件构建git 源码仓库拉取构建
, 不同类型则需要填写不同的linglong.yaml
玲珑应用构建工程源文件类型
sources
主要支持这几种类型:gitlocal``filearchive
完整说明参考: 构建配置文件简介
git拉取源码编译模式
当玲珑应用构建工程需要通过git拉取开源项目仓库资源到本地进行构建时, 此时
sources
应当设置为git
类型, 并根据要求填写linglong.yaml
此时需要根据规范编写
sources
与build
模块sources
示例:tag标签
, 或拉取主线master
commit
变动历史拉取源码, 此处填入commit对应的值, 将会应用该仓库截止本commit的所有变更. *此字段优先级高于version
, 请勿填入version
合并时间之后的任何commit
* 支持同时添加多个git仓库作为
sources
拉取build
示例:此模块为构建规则正文, 路径遵守
玲珑应用目录结构规范
在
sources
拉取到本地后, 仓库文件将会存放在/project/linglong/sources
目录中, 此时不同仓库目录以xxx.git
命名支持运用
git patch
功能对源代码进行便捷维护本地资源操作模式
当玲珑应用构建工程需要对构建目录中的文件操作时, 此时
kind
应当设置为local
类型, 并根据要求填写linglong.yaml
此时需要根据规范编写
sources
与build
模块sources
示例:* 当
kind
应当设置为local
类型时, 构建工程将不会对任何源文件进行操作build
示例:此模块为构建规则正文, 路径遵守
玲珑应用目录结构规范
此时
build
规则支持多种写法以模拟人为操作* 需要确保此构建规则所有步骤均可以正常被执行, 否则将会中断当次构建任务
容器内部手动操作模式
若计划直接进入玲珑容器手动操作而不是通过构建规则文件
linglong.yaml
,那么应该参考本地资源操作模式
填写linglong.yaml
sources
部分写法与本地资源操作模式
一致build
规则, 此时linglong.yaml
用于生成符合描述的玲珑容器而不是执行所有任务, 具体操作可查阅后续课程关于容器内部构建文件的案例以上便是玲珑应用构建的一些基础知识,相信您已对玲珑应用构建的规范、目录结构、资源配置及关键文件(如linglong.yaml)有了较全面的认知。这些知识不仅是构建流程的“地图”,更是规避常见陷阱的“指南针”。
在接下来的系列推文中,我们将深入实战环节。准备好您的开发环境,下一站,我们将带大家在玲珑容器中编译基于 Qt5 的开源应用!
欢迎持续关注,共同探索容器化应用的未来。如有任何关于如意玲珑的建议或疑问,欢迎留言讨论!或扫描下方二维码加入如意玲珑交流群,参与项目讨论。