[ Content contribution] ACE兼容环境:支持应用融合安装到系统(类似玲珑),附原理解析
Tofloor
poster avatar
神末shenmo
deepin
Spark-App
2023-11-13 02:46
Author

ACE用极为轻量的容器方案让你可以在deepin 20/23/UOS上运行一个 Debian 12容器,让你可以在上面运行因为deepin 20/UOS过于老旧或者跟社区v23上软件包不全而无法运行的应用,比如Steam

支持Amd64和Arm64架构

目前ACE使用一个痛点就是安装后的应用无法自动创建启动器(开始菜单)入口,需要使用命令行,这对小白用户有很大考验;即使创建了入口,也无法右键卸载

经过一顿努力,终于解决了这两个问题

实现原理

系统融合:

  1. 配置 /etc/profiles.d,加入XDG_DATA_DIR

https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/blob/master/src/etc/profile.d/bookworm-compatability-mode.sh

  1. 使用额外的integrator配置做三件事。1.在Exec前面加上bookworm-run并添加ACE标识 2. 修复绝对路径的Icon无法显示 3.为UOS标准软件包创建主机和容器都可以认的相对路径link
    https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/blob/master/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/ace-host-integration/opt/ace-host-integration/ace-host-integration

卸载器

通过desktop文件猜测并验证对应的deb包名并调用apt卸载

https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/blob/master/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper

演示:自动创建开始菜单入口

录屏_选择区域_20231112182226.gif

演示:应用卸载管理器(右键卸载需要修改dde-launchpad/dde-appwizard,正在和研发团队联系中~暂时使用独立应用入口卸载)

录屏_zenity_20231112182732.gif


下载地址:

从星火应用商店

https://spark-store-project.gitee.io/spk-resolv/?spk=spk://store/tools/cn.flamescion.bookworm-compatibility-mode

从Gitee:

https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/releases


开发心得:

  • 额外适配UOS标准软件包还是挺费劲的,需要创建容器内外都认的相对路径链接,兼容性包袱确实感觉不舒服
  • 通过dpkg钩子的方法避免了对容器内系统的修改,相对优雅一些,感谢 @neko 的催更。催更的最好方法就是给作者添加一个做了一半的功能 https://bbs.deepin.org/zh/post/264229 ,这样作者就会觉得很难受然后爆肝几天把这个功能做完整 joy 最后作品参考 https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/blob/master/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/flamescion-container-tools/ace-host-integration/opt/ace-host-integration/ace-host-integration
  • 参考 lastore-daemon-tool的代码做了卸载器,改一改应该可以做一个bash版本的deepin-application-wizard了,大概~坛友如果也需要通过desktop文件确定对应deb包,可以参考这里 https://gitee.com/amber-compatability-environment/bookworm-compatibility-mode/blob/master/src/opt/apps/cn.flamescion.bookworm-compatibility-mode/files/bin/ace-uninstall-helper

其他计划

  • 计划星火应用商店推出ACE专版,或者给商店添加 安装到ACE容器 模式,使星火应用商店支持 Arch/fedora 等发行版
Reply Favorite View the author
All Replies
阿尼樱奈奈
Moderator
2023-11-13 03:02
#1

likeyeah

Reply View the author
neko
deepin
Ecological co-builder
2023-11-13 03:45
#2

like

Reply View the author
好聚好散
deepin
2023-11-13 03:49
#3

proud

Reply View the author
青稚
deepin
2023-11-13 04:49
#4

整挺好,点赞like

Reply View the author
fax928
deepin
2023-11-13 04:51
#5

yeah

Reply View the author
hanzn-zzx
deepin
2023-11-13 06:03
#6

like

感谢神末大佬!

Reply View the author
mozixun
deepin
2023-11-13 06:24
#7

大佬厉害!

Reply View the author
公子独白
deepin
2023-11-13 17:46
#8

like

Reply View the author
myml
Super Moderator
Developer
2023-11-17 00:22
#9

like

Reply View the author
nexfia
deepin
2023-12-29 20:58
#10

shenmo-ikunjoy

Reply View the author
J***[email protected]
deepin
2024-01-19 12:04
#11

感谢大佬的开发,因为需要使用新版的QGIS和相关组件,在UOS上,目前ACE兼容环境是唯一可行的安装方案。

Reply View the author
神末shenmo
deepin
Spark-App
2024-01-20 10:25
#12
J***[email protected]

感谢大佬的开发,因为需要使用新版的QGIS和相关组件,在UOS上,目前ACE兼容环境是唯一可行的安装方案。

其实也有像docker,distrobox这样的解决方案,但是ACE是兼具较为轻量和易上手的那个

Reply View the author
J***[email protected]
deepin
2024-01-22 10:22
#13
神末shenmo

其实也有像docker,distrobox这样的解决方案,但是ACE是兼具较为轻量和易上手的那个

我们非计算机方向的,其实不怎么关注底层的东西,只要安全,可靠,易用就可以了,它就符合这三条。

Reply View the author
神末shenmo
deepin
Spark-App
2024-01-22 11:33
#14
J***[email protected]

我们非计算机方向的,其实不怎么关注底层的东西,只要安全,可靠,易用就可以了,它就符合这三条。

非常感谢~

Reply View the author
2yiuser
deepin
2024-07-09 17:27
#15

佬,现在还没有安装到ACE容器功能吗sob

Reply View the author
神末shenmo
deepin
Spark-App
2024-07-09 18:00
#16
2yiuser

佬,现在还没有安装到ACE容器功能吗sob

可以在容器里面装商店~


因为Qt开发比较缺所以一直没人写

Reply View the author
2yiuser
deepin
2024-07-09 23:01
#17
神末shenmo

可以在容器里面装商店~


因为Qt开发比较缺所以一直没人写

好的佬kissing_heart

Reply View the author