强啊
好活!
强啊
全是bwrap的功劳,写代码还没打包用功多
大赞
这不属于水贴,请修改成经验分享,请找板块论坛版主或者官方运营人员,看看能否加精。
这不属于水贴,请修改成经验分享,请找板块论坛版主或者官方运营人员,看看能否加精。
略略略,就是水帖
略略略,就是水帖
水贴啊,那本版主就要给你禁言了(玩笑)。
水贴,水出了新高度
这是啥工具,看不懂
水贴啊,那本版主就要给你禁言了(玩笑)。
你不怕这个版主给你禁言?
你不怕这个版主给你禁言?
相互禁言
这是啥工具,看不懂
用来解决一个有点困扰的兼容性问题。如果总是装一些外来应用的话可能会遇到。如果不曾遇到的话就恭喜,不过假如以后遇到的话,一定记得,不要乱动系统文件。数不胜数的系统由于使用了错误的方法升级glibc而覆灭,很多老鸟都曾在这个问题上折戟沉沙。
略略略,就是水帖
这波叫做,精华到极致就是水
相互禁言
版主给版主禁言,可以自己解开。
投一个到星火商店吧
这个东西完全可以扩展一下集成到商店啊
可以在后续版本中加入对desktop文件的解析
这里是摘抄自一段prime-run的代码
if [ "${FILE##*.}"x = "desktop"x ]
then
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia $(cat $FILE | grep "Exec=" | sed "s/^Exec=//" | sed "s/%.//" | sed "s/^\"//g" | sed "s/\" *$//g" | head -n 1)
else
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia $FILE
fi
可否加入星火计划的开发,作为一个兼容性解决方案推出呢?整合到商店工具中,或者作为一个依赖加入仓库
感觉这个东西弄全一点可以做成一整个容器,以后做到让星火的软件都在容器中安装运行,这不就完全解决了依赖问题了嘛
可否加入星火计划的开发,作为一个兼容性解决方案推出呢?整合到商店工具中,或者作为一个依赖加入仓库
感觉这个东西弄全一点可以做成一整个容器,以后做到让星火的软件都在容器中安装运行,这不就完全解决了依赖问题了嘛
就一行命令的内容,也没什么许可证的限制,随便用吧。内置的库文件也都是下载debian的,我没做任何修改。
其实我也清楚单靠堆库并不能完全解决兼容的问题,就算是在deepin上再叠一个debian一个ubuntu一个fedora一个arch,也还是会有东西运行不了。自带依赖的AppImage出问题的也不少,有少打包了库的,有自带的库和系统的库不兼容的,最后还是要手动解决。提高打包的质量才是关键。
隔壁flatpak的话是在软件的构建阶段就把能使用的依赖库以运行时和sdk的方式固定了,所以flatpak就不容易遇到兼容问题。AppImage和传统的包管理器就必须打包人员把关。
第七版现在推出了,这回大家可以去gitee下载。之后大概不会在这个帖子继续更新了。
https://gitee.com/deepin-community-store/additional-base-lib
但是如果大家有问题的话,还是可以在帖子下面留言。
第六版现在可以自动检测appimage了,取消了ablimage,现在可以使用ablrun直接运行appimage和其他可执行文件。另外优化了一点appimage的运行方法。链接已经换成新版的了,请在下面下载。
第五版现在可以运行appimage程序,请使用专用的命令来运行:
ablimage 文件名
。第四版修复了运行选项中有空格时不能正确传递的问题,并且防止了bash的持续运行(能节约一点内存?)。另外写了一点描述,现在只运行
ablrun
不加选项可以看到。第三版修复了误添加当前文件夹到动态库寻找路径的问题,并且额外打包了新版glibc的ldd脚本,现在可以使用
ablrun ldd [文件名]
来查看依赖解决情况了。第二版现已推出,修正了脚本中不能传递程序运行选项的问题。库文件还是原来的,没有改动。
隆重推出additional base lib(我也不知道叫啥好了),内置glibc和libstdc++,简单可靠,五秒部署,纯正原味,没有风险(以上纯属胡言乱语)
其实原理还是我们最爱的bwrap,创建一个容器把libc和ld.so替换掉,就这么简单(bwrap真是为大家节约了不少生命)。此外用了一点小技巧让大家仍然可以自己
设置LD_LIBRARY_PATH变量来寻找自己安装的动态库。选用的glibc和libstdc++是从debian bookworm(debian 12,目前是测试版)上下载的,支持到GLIBC_2.36、GLIBCXX_3.4.30。
安装:下载解压得到deb包,打开终端,输入
sudo apt install
,输入空格后在文件管理器里用鼠标按住deb包拖拽过去,然后按回车。使用:安装好了后,在终端运行不兼容的软件时,只需要在前面加上ablrun和空格就可以了。
ablrun [命令]
删除:
sudo apt remove additional-base-lib
注意事项:
1、只支持amd64(x86_64)
2、所有gcc库中我只加入了libstdc++(毕竟比较常用)。如果需要其他比如objective-c,fortran,d等语言的标准库,可以留言
3、应该能在其他基于debian的发行版上运行,但是我还没测试
4、由于包括的库比较少,只能解决部分兼容问题。但是通过学习,大家能解决所有常见问题。(可以看我之前的帖子:https://bbs.deepin.org/post/256081)
5、不能保证程序没有故障,各位需要为自己系统的安全负责
下载:
additional-base-lib-2.36-9-6.deb.zip