ACE兼容环境提供了一个基于bwrap的debian环境
先前看到玲珑的uab单文件格式,想要做一个,但一直没能构建出单文件挂载的方式
近日,机缘巧合下,我通过 https://github.com/ivan-hc/ArchImage 发现了这个神奇的项目:Conty https://github.com/Kron4ek/Conty
Conty提供了一系列脚本以把整个Arch Linux打包成一个单文件。我fork了此项目,替换rootfs为ACE的rootfs,经过修改后成功打包为ACE单包格式:amberbundle
AmberBundle是基于Conty构建的ACE兼容环境单包打包格式,支持把整个rootfs打包成单个可执行文件,便于分发和储存
AmberBundle格式:前段为init和bash,而后是bash shell启动脚本,最后追加busybox
init的源码在 https://gitee.com/amber-ce/Conty/blob/master/init.c 可以看到
我用AmberBundle打包了微信Wine,这个文件理论可在近年来任何x64 linux主机上启动,不限发行版
Conty原版特性:
- 支持Nvidia驱动
- 使用overlayfs,尽管整个容器是只读的但是可以在~/.local/share/Conty下保存修改,做到只读但是可以保存修改
- 其他可在启动时 -h 来详细查看或者前往对应github地址查看
ACE在原版外的修改:
- 默认禁用Nvidia驱动而不是默认启用,ACE Env中自带了mesa驱动,在打包非游戏应用中不需要独立显卡。Nvidia驱动受限于中国特色网络环境可能会导致首次启动非常缓慢或启动失败。可手动启用(未测试)
- 加入host-spawn集成,非沙箱状态下可直接用主机的打开方式打开文件和网页链接
- 主机主题集成,修复应用上光标不跟随主机光标主题的问题
- 没有任何参数时添加默认启动设置
已知问题:
- 暂不支持-u -l等依赖于pacman的功能,将在后续开发中支持
后续开发方向:
- 修改脚本以更适配ACE Env
- amber-ce --export 直接导出单文件包
微信体验下载地址:
https://pan.huang1111.cn/s/gg1PQuQ
使用方法:
- 下载后,找到文件,双击文件,点击运行即可,和AppImage一样