[ Technical exchange] 利用玲珑杀手ll-killer实现全自动打包及手动打包本地deb简单方法
Tofloor
poster avatar
克亮
Moderator
2025-04-06 22:32
Author

玲珑杀手是一款专为解决玲珑容器应用构建问题而设计的命令行工具。它帮助开发者快速创建、构建和生成玲珑容器应用项目,同时提供一整套辅助构建与调试功能。仅仅需要简单几步就可以让你也能打包玲珑包。

仅需简单操作,你就可以实现快乐打包玲珑应用。

1.安装所需要的依赖 (自动查库、搜库、自动构建、自动化测试-截图)

sudo apt install apt-file erofs-utils xvfb xdotool scrot

2.下载玲珑杀手


wget https://ll-killer.win/releases/latest/download/ll-killer-amd64 -O ll-killer
chmod +x ll-killer

3.为了方便使用,可将 ll-killer 安装到 ~/.local/bin

mkdir -p ~/.local/bin
mv ll-killer ~/.local/bin

4.设置环境变量 如果 ~/.local/bin 未添加至 PATH,请执行:

echo 'export PATH=$HOME/.local/bin:$PATH' >>~/.bashrc
source ~/.bashrc

打开终端 输入ll-killer -v 玲珑杀手安装成功后会显示具体版本及构建时间

执行ll-killer update 可实现自动升级到最新版本(目前最新版v1.5.3)

image.png

到此玲珑杀手已经安装完毕,那如何利用玲珑杀手来愉快打玲珑包呢?

一般分两种,一种是直接利用商店的应用名称 全自动打包方法如下:

打开应用商店 随机找一个应用 这里拿经典扫雷做演示(com.github.minesweep) 仅需两步就收工

桌面新建文件夹为saolei并打开文件夹 (也可以用命令mkdir saolei cd saolei),右键打开终端输入以下命令

ll-killer init
make PKG=com.github.minesweep

等待完成,是不是非常容易。

这里可以用make test 实现全自动执行及完成截图,截图在目录tests文件架下。

第二种是本地包打包法:

本地应用打包法 扫雷为例

下载deb包
apt download com.github.minesweep
初始化参数
ll-killer init
deb包提取pkg.info *.deb 我这里是用通配符
ll-killer apt -- apt show ./*.deb >pkg.info
从pkg.info到玲珑环境
ll-killer create --from pkg.info --id com.github.minesweep.linyaps
安装本地下载的deb包 *.deb 我这里是用通配符
ll-killer build --ptrace -- apt install ./*.deb
导出玲珑包
ll-killer layer build
安装玲珑包
ll-cli install *_binary.layer

这里面有几个技巧:

ll-killer apt -- apt show + 应用英文名称 可以查看包的相关信息

make -n 可以看自动化步骤

ll-killer init -f 初始化修复

/linglong/filesystem/diff 这个目录下文件在打包成玲珑应用前可以修改里面的内容。

(特别是针对桌面图标 、部分应用环境变量)。

针对部分应用依赖缺失问题可以更换源来尝试解决 (默认是拷贝系统自带的源)

V23 APT 源如下: arm uos系统用V23的源可以解决部分依赖不满足的问题

cat >sources.list <

清华的源 一般情况下deb的包可能会比deepin的版本要高一点,也不是绝对的。

cat >sources.list <

想更深入了解玲珑杀手可以打开下面链接,欢迎大家多多测试,如果测试有问题的应用,也可以跟帖讨论。

https://bbs.deepin.org.cn/post/285002

https://github.com/System233/ll-killer-go

Reply Favorite View the author
All Replies
玲珑沙
deepin
2025-04-07 19:36
#1

安装玲珑杀手缺少了两个命令

mkdir -p .local/bin

mv ll-killer .local/bin/

如果能把星火商店的源 弄过来 就好说了。毕竟星火商店deb好弄呢

Reply View the author
锵锵枪ᯤ
deepin
2025-04-10 18:58
#2

[从主机复制sources.list]
cat $(find /etc/apt/sources.list /etc/apt/sources.list.d -type f) > sources.list
[更新APT缓存]
ll-killer apt -- apt update -y 2>&1 | tee apt-update.log~
remount:/proc: operation not permitted
make: *** [Makefile:157:apt-update.log] 错误 1

Reply View the author
克亮
Moderator
2025-04-10 21:07
#3
锵锵枪ᯤ

[从主机复制sources.list]
cat $(find /etc/apt/sources.list /etc/apt/sources.list.d -type f) > sources.list
[更新APT缓存]
ll-killer apt -- apt update -y 2>&1 | tee apt-update.log~
remount:/proc: operation not permitted
make: *** [Makefile:157:apt-update.log] 错误 1

可以手动添加清华源。再测试一下。

Reply View the author
锵锵枪ᯤ
deepin
2025-04-10 21:22
#4
克亮

可以手动添加清华源。再测试一下。

应该不是源的问题,源都是通的

Reply View the author
克亮
Moderator
2025-04-10 22:44
#5
锵锵枪ᯤ

应该不是源的问题,源都是通的

我知道是啥原因了,原来是不可变磐石系统权限问题yeah

截图_20250410220326.png

解决方法如下:sudo deepin-immutable-ctl disable-system-protect enable 重启生效,

目前V25有很多BUG 尚未解决。

截图_20250410224324.png

Reply View the author
MeGusta
deepin
2025-04-21 23:28
#6
克亮

我知道是啥原因了,原来是不可变磐石系统权限问题yeah

截图_20250410220326.png

解决方法如下:sudo deepin-immutable-ctl disable-system-protect enable 重启生效,

目前V25有很多BUG 尚未解决。

截图_20250410224324.png

一种变通的方式是,安装 debian12子系统,在系统中安装linglong以及依赖,然后使用 distrobox enter debian-12 -- make

最后一步会报错,然后直接 ll-killer layer build,就可以成功构建layer。

Reply View the author