**查看原文**
本文适用于1.5.6版本, 请使用 ll-cli --version
检查您的如意玲珑程序版本。
openEuler安装如意玲珑
如意玲珑组成
- ll-builder 用来构建和调试如意玲珑应用,由 linglong-builder 提供;
- ll-box 沙箱容器,由 linglong-box 提供;
- ll-cli 管理和运行如意玲珑应用,由 linglong-bin 提供。
openEuler添加如意玲珑仓库源并更新仓库信息
sudo curl -o /etc/yum.repos.d/linglong.repo -L https://eur.openEuler.openatom.cn/coprs/kamiyadm/linglong/repo/openEuler-24.03_LTS/kamiyadm-linglong-openEuler-24.03_LTS.repo
sudo dnf update
安装玲珑环境
sudo dnf install linglong-builder linglong-box linglong-bin
安装桌面环境(可选)
如果想运行gui类型应用,需要安装桌面环境,仅运行终端类型应用不需要安装桌面环境。这里以安装DDE为例,也支持在其他桌面环境下使用,如KDE,GNOME。
sudo dnf install dde
sudo systemctl set-default graphical.target
重启系统
sudo reboot
openEuler使用如意玲珑
使用构建工具ll-builder
1.1 创建项目
创建如意玲珑项目命令:ll-builder create
查看 ll-builder create 命令的帮助信息:ll-builder create --help
ll-builder create 命令的帮助信息如下:
Usage: ll-builder [options] create <org.deepin.demo>
Options:
-v, --verbose show detail log
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
Arguments:
create create build template project
name project name
ll-builder create命令根据输入的项目名称,在当前目录创建对应的文件夹,同时生成构建所需的 linglong.yaml模板文件。示例:ll-builder create org.deepin.hello
命令输出如下:
`org.deepin.hello/
└── linglong.yaml`
1.2 编辑linglong.yaml
linglong.yaml 文件语法的版本:version: "1"
软件包元信息配置:
package:
id: org.deepin.hello
name: hello
version: 0.0.0.1
kind: app
description: /
simple demo.
基础环境,最小的根文件系统:base: org.deepin.foundation/23.0.0
如意玲珑应用的启动命令:command: [echo, -e, hello world]
在容器内构建项目需要的命令:
build: /
echo 'hello' #some operation to build this project
完整的linglong.yaml配置内容如下:
version: "1"
package:
id: org.deepin.hello
name: your name #set your application name
version: 0.0.0.1 #set your version
kind: app
description: /
your description #set a brief text to introduce your application.
command: [echo, -e, hello world] #the commands that your application need to run.
base: org.deepin.foundation/23.0.0 #set the base environment, this can be changed.
#set the runtime environment if you need, a example of setting deepin runtime is as follows.
#runtime:
#org.deepin.Runtime/23.0.1
#set the source if you need, a simple example of git is as follows.
#sources:
# - kind: git
# url: https://github.com/linuxdeepin/linglong-builder-demo.git
# version: master\n
# commit: a3b89c3aa34c1aff8d7f823f0f4a87d5da8d4dc0
build: /
echo 'hello' #some operation to build this project
1.3 构建应用
ll-builder build命令用来构建如意玲珑应用。
查看ll-builder build命令的帮助信息:
ll-builder build --help
ll-builder build命令的帮助信息如下:
`
--exec <command> run exec than build script
--offline only use local files. This implies --skip-fetch-source
and --skip-pull-depend
--skip-fetch-source skip fetch sources
--skip-pull-depend skip pull dependency
--skip-run-container skip run container. This implies skip-commit-output
--skip-commit-output skip commit build output
--arch <arch> set the build arch
Arguments:
build build project
ll-builder build命令必须运行在工程的根目录,即 linglong.yaml文件所在位置。以如意玲珑项目 org.deepin.demo为例,构建如意玲珑应用主要步骤如下:
● 进入到 org.deepin.demo项目工程目录:
`cd org.deepin.demo`
● 执行 ll-builder build命令将开始构建如意玲珑应用:
`ll-builder build`
构建完成后,构建内容将自动提交到本地ostree缓存中。
**1.4 验证应用**
ll-builder run命令用来运行验证应用。
查看ll-builder run命令的帮助信息:
`ll-builder run --help`
ll-builder run命令的帮助信息如下:
Usage: ll-builder [options] run
Options:
-v, --verbose show detail log
-h, --help Displays this help.
--exec <exec> run exec than build script
Arguments:
run run project
在linglong.yaml文件所在位置,执行ll-builder run即可运行该应用。
示例项目org.deepin.demo运行结果如下:
`hello`
也可从构建缓存中导出成离线文件,通过客户端工具ll-cli安装使用。
**1.5导出离线文件**
ll-builder提供了子命令export来导出离线文件(.uab/.layer)。
查看ll-builder export命令的帮助信息:
`ll-builder export --help`
ll-builder export命令的帮助信息如下:
Usage: ll-builder [options]
Options:
-v, --verbose show detail log (deprecated, use QT_LOGGING_RULES)
-h, --help Displays help on commandline options.
--help-all Displays help including Qt specific options.
-f, --file <path> file path of the linglong.yaml (default is ./linglong.yaml)
-i, --icon <path> uab icon (optional)
-l, --layer export layer file
在linglong.yaml文件所在位置,执行以下命令即可将构建缓存导出离线文件:
`ll-builder export --layer`
执行成功后,将在当前目录下,生成两个以.layer结尾的文件:
org.deepin.demo_0.0.0.1_x86_64_develop.layer
org.deepin.demo_0.0.0.1_x86_64_binary.layer
包含binary(此前这部分名为runtime)的部分为应用的主要运行内容,develop 在 binary 的基础上保留调试环境(如调试符号)。
### 2、使用客户端ll-cli
**2.1 安装玲珑应用**
**2.1.1使用ll-cli install安装**
首先查看ll-cli install命令的帮助信息:
`ll-cli install --help`
ll-cli install命令的帮助信息如下:
linglong CLI
A CLI program to run application and manage linglong pagoda and tiers.
Usage:
ll-cli [--json] --version
ll-cli [--json] run APP [--no-dbus-proxy] [--dbus-proxy-cfg=PATH] ( [--file=FILE] | [--url=URL] ) [--] [COMMAND...]
ll-cli [--json] ps
ll-cli [--json] exec PAGODA [--working-directory=PATH] [--] COMMAND...
ll-cli [--json] enter PAGODA [--working-directory=PATH] [--] [COMMAND...]
ll-cli [--json] kill PAGODA
ll-cli [--json] [--no-dbus] install TIER
ll-cli [--json] uninstall TIER [--all] [--prune]
ll-cli [--json] upgrade TIER
ll-cli [--json] search [--type=TYPE] [--dev] TEXT
ll-cli [--json] [--no-dbus] list [--type=TYPE]
ll-cli [--json] repo modify [--name=REPO] URL
ll-cli [--json] repo show
ll-cli [--json] info TIER
ll-cli [--json] content APP
Arguments:
APP Specify the application.
PAGODA Specify the pagodas (container).
TIER Specify the tier (container layer).
URL Specify the new repo URL.
TEXT The text used to search tiers.
Options:
-h --help Show help information of ll-cli.
--version Show version.
--json Use json to output command result, you can get the description of the output refer to linglong api documentation(/usr/share/linglong/api/api.json).
--no-dbus Use peer to peer DBus, this is used only in case that DBus daemon is not available.
--no-dbus-proxy Do not enable linglong-dbus-proxy.
--dbus-proxy-cfg=PATH Path of config of linglong-dbus-proxy.
--file=FILE you can refer to https://linglong.dev/guide/ll-cli/run.html to use this parameter.
--url=URL you can refer to https://linglong.dev/guide/ll-cli/run.html to use this parameter.
--working-directory=PATH Specify working directory.
--type=TYPE Filter result with tiers type. One of "runtime", "app" or "all". [default: app]
--state=STATE Filter result with the tiers install state. Should be "local" or "remote". [default: local]
--prune Remove application data if the tier is an application and all version of that application has been removed.
--dev include develop tiers in result.
Subcommands:
run Run an application.
ps List all pagodas.
exec Execute command in a pagoda.
enter Enter a pagoda.
kill Stop applications and remove the pagoda.
install Install tier(s).
uninstall Uninstall tier(s).
upgrade Upgrade tier(s).
search Search for tiers.
list List known tiers.
repo Display or modify information of the repository currently using.
info Display the information of layer
content Display the exported files of application
从玲珑仓库安装玲珑应用,以百度网盘为例:
`ll-cli install com.baidu.baidunetdisk`
ll-cli install命令需要输入应用完整的id,若仓库有多个版本则会默认安装最高版本。安装指定版本需在 appid后附加对应版本号:
ll-cli install com.baidu.baidunetdisk/4.17.7.0
应用安装完成后,客户端会显示安装结果。
**2.1.2从本地通过离线文件安装应用**
以构建示例org.deepin.demo为例:
安装.layer 文件:
ll-cli install ./org.deepin.demo_0.0.0.1_x86_64_binary.layer
查看安装是否成功命令:
`ll-cli list | grep org.deepin.demo`
**2.2 运行玲珑应用**
如果有桌面环境的情况下,可以通过双击启动器下的图标运行应用,或通过终端命令行运行,使用run命令运行应用:
`ll-cli run org.deepin.demo`
## 附录:
(1)[deepin 全版本镜像(含 deepin V15)](https://distrowatch.com/index.php?distribution=deepin)
(2)[如意玲珑社区官网](https://www.linglong.space/)
(3)[如意玲珑代码仓库](https://github.com/OpenAtomFoundation/linglong)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。