[Feelings & Sharing] 【水】又做了个解决glibc版本问题的小工具
Tofloor
poster avatar
enforcee
deepin
2023-05-16 03:28
Author

第七版现在推出了,这回大家可以去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++,简单可靠,五秒部署,纯正原味,没有风险(以上纯属胡言乱语)

joy

其实原理还是我们最爱的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、不能保证程序没有故障,各位需要为自己系统的安全负责

图片.png

下载:

additional-base-lib-2.36-9-6.deb.zip

Reply Favorite View the author
Comments
poster avatar
俺最萌
2023-05-16 03:37
收藏了
All Replies
2 / 2
To page
touchzen
deepin
2023-05-28 12:45
#21

谢谢,这个用处很大。

Reply View the author
boydreaming
deepin
2023-06-08 22:38
#22

多谢,可以运行中州韵98五笔助手了,因为它要glibc-2.3以上。

/bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by ../bin/newReader) ../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libxkbcommon.so.0)
../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libglib-2.0.so.0) ../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libglib-2.0.so.0)

但是运行出来的程序无法输入中文,麻烦抽空看一下。该个工具下载的地址。https://bbs.deepin.org/post/257869

Reply View the author
redmibook
deepin
2023-06-08 22:57
#23
boydreaming

多谢,可以运行中州韵98五笔助手了,因为它要glibc-2.3以上。

/bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.34' not found (required by ../bin/newReader) ../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libxkbcommon.so.0)
../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.33' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libglib-2.0.so.0) ../bin/newReader: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /opt/rimetool/squashfs-root/usr/bin/../lib/libglib-2.0.so.0)

但是运行出来的程序无法输入中文,麻烦抽空看一下。该个工具下载的地址。https://bbs.deepin.org/post/257869

不能在程序中输入汉字的原因,既不在「中州韵98五笔助手」这边,也不在楼主的工具那里,而是 Deepin 一直缺少对 Qt6 类程序输入法动态链接库的组件支持,详见:https://github.com/orgs/linuxdeepin/discussions/4658

解决办法也很简单,使用最新的 DeepinV23,然后使用资源库做好的配置补齐包,『DeepinV23专用』的压缩包里,有一键运行的脚本。

Reply View the author
whoami
deepin
2023-06-09 18:14
#24
enforcee

用来解决一个有点困扰的兼容性问题。如果总是装一些外来应用的话可能会遇到。如果不曾遇到的话就恭喜,不过假如以后遇到的话,一定记得,不要乱动系统文件。数不胜数的系统由于使用了错误的方法升级glibc而覆灭,很多老鸟都曾在这个问题上折戟沉沙。

差一点灰飞烟灭, 还有动系统之前来论坛发了个帖, 毕竟之前有升级系统包版本灰飞烟灭的经历。。。

Reply View the author
字甲达宾
deepin
2023-07-10 06:03
#25

勘误:additional-base-lib-2.36-9-6.deb

usr/bin/ablrun ,以及另外两个 bash 脚本,第一行标记路径有误:

#!/usr/bin/bash

应为:

#!/bin/bash

否则,会报错:

bash: /usr/bin/ablrun:/usr/bin/bash:解释器错误: 没有那个文件或目录

Reply View the author
enforcee
deepin
2023-07-10 07:33
#26
字甲达宾

勘误:additional-base-lib-2.36-9-6.deb

usr/bin/ablrun ,以及另外两个 bash 脚本,第一行标记路径有误:

#!/usr/bin/bash

应为:

#!/bin/bash

否则,会报错:

bash: /usr/bin/ablrun:/usr/bin/bash:解释器错误: 没有那个文件或目录

你用的什么系统?在现在usr merge标准下应该应用程序资源都存放在usr目录里

Reply View the author
fbh
deepin
2024-01-14 22:53
#27

楼主nb,帮大忙了

Reply View the author
2 / 2
To page