[Seek Help] Glibc版本过低
Tofloor
poster avatar
南阁
deepin
2023-03-24 02:34
Author

现在的Deepin 20.8版本,运行很多软件都会报Glibc版本过低的问题。 有什么解决办法吗?

Reply Favorite View the author
All Replies
吉吉如律令
deepin
2023-03-24 02:47
#1

没有,glibc是linux最底层的api,很多运行库都要依赖它,不能轻易更改,只能说deepin的软件库太老了,目前唯一的希望就是v23快点出了

Reply View the author
南阁
deepin
2023-03-24 02:54
#2
吉吉如律令

没有,glibc是linux最底层的api,很多运行库都要依赖它,不能轻易更改,只能说deepin的软件库太老了,目前唯一的希望就是v23快点出了

有没有公测预期时间?

Reply View the author
touchzen
deepin
2023-03-24 04:09
#3

我是自己编译的gcc 12, 然后用编译好的glibc升级,好像也没有什么问题。

Reply View the author
qq4945286
deepin
2023-03-24 04:43
#4
touchzen

我是自己编译的gcc 12, 然后用编译好的glibc升级,好像也没有什么问题。

能出一个详细的步骤吗,前面用UOS就是因为libc太低

Reply View the author
lianghb
deepin
2023-03-24 04:59
#5

没有,glibc是底层库,版本低没辙。

就算v23版本,glibc版本也不高,坚持3年肯定又落后了。

Reply View the author
lizipeng0013
deepin
2023-03-24 06:18
#6

搞来源码尝试自己编译,我就在做这件事,不过大多数都失败了,目前就搞定了两个小软件

没源码的那就只有升级glibc版本才能用了,deepin20的libc版本和15版本一样,都是2.28

真搞不懂为什么20不升级glibc,2.28已经是2018年的东西了

Reply View the author
W2J
deepin
2023-03-24 07:59
#7

适配glibc肯定比win容易

Reply View the author
150******77
deepin
2023-03-24 08:05
#8

glibc是底层库,搞坏了系统直接是启动不了的,所以弄之前先备份系统或者有live系统,,万一挂了,可以吧glibc2.28的软链恢复回来

cd ~/Downloads

wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz

解压并进入创建临时目录

tar -zxf glibc-2.29.tar.gz

cd glibc-2.29

mkdir build

cd build/

安装编译依赖

sudo apt-get install gawk bison -y

检测编译环境,生成Makefile

../configure --prefix=/usr/local --disable-sanity-checks

编译

make

安装到系统中

sudo make install

拷贝编译产物

sudo cp /usr/local/lib/libm-2.29.so /lib/x86_64-linux-gnu/

创建链接

cd /lib/x86_64-linux-gnu/

sudo ln -sf libm-2.29.so libm.so.6

查看安装结果

strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_

Reply View the author
Comments
W2J
2023-03-24 21:40
经测试完美没问题。赞!
青稚
deepin
2023-03-24 15:20
#9

我不用deepin,软件包太旧了debian10的底子,还不如用ubuntu,不过我依旧支持deepin,它的包容性非常好,在论坛你可以看到ubuntu的教程。

等23稳定,稳定,我看看情况,毕竟生产力deepin确实不合适。

Reply View the author
吉吉如律令
deepin
2023-03-24 15:46
#10
touchzen

我是自己编译的gcc 12, 然后用编译好的glibc升级,好像也没有什么问题。

我是按网上教程编译的glibc2.29,然后重启系统就崩了

Reply View the author
W2J
deepin
2023-03-24 20:08
#11
吉吉如律令

我是按网上教程编译的glibc2.29,然后重启系统就崩了

会崩吗?

正在后台编译,还没安装呢。

后一天补冲详细测试结果(22-03-25):

刚才我试验了不少app,包括音乐/截图/ide编译/bash shell/东方财富/firefox/文件管理等等,app运行都没发现问题。
于是我试图安装更大更复杂的app,第一个想到的是gimp,一下子就出了问题。

apt提示失败好像说一个钩子挂空了,

于是我关闭D20.8各种app准备去ubuntu上试一试gimp,但是D20.8在退出所有app后忽然冻结了,全部应用都无法再启动(只把图标晃动几下)。

用xkill杀掉d20.8尝试重启,但重启竟是直接黑屏。


我转而开始检测ubuntu的glibc版本,发现host/vm上分别是2.23和2.31,gimp也很正常。

由于D20.8已不能继续启动,回退快照到安装前基线后,D20.8恢复正常启动了。

后续准备用那台20.7再验证一番。

Reply View the author
W2J
deepin
2023-03-24 21:37
#12

刚才建立基线备份后试装了一下glibc2.29,

经测试完美没问题。

WndTrayIcon-test.zip

Reply View the author
W2J
deepin
2023-03-24 21:46
#13

w2j@D208:/lib/x86_64-linux-gnu$ strings /lib/x86_64-linux-gnu/libm.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.26
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_PRIVATE
exp2@@GLIBC_2.29
log2@@GLIBC_2.29
GLIBC_2.15
__strtold_nan@@GLIBC_PRIVATE
pow10f@GLIBC_2.2.5
errno@@GLIBC_PRIVATE
qsort@@GLIBC_2.2.5
expf@@GLIBC_2.27
log2@GLIBC_2.2.5
GLIBC_2.26
GLIBC_2.28
GLIBC_2.24
pow@@GLIBC_2.29
__strtod_nan@@GLIBC_PRIVATE
exp2f@@GLIBC_2.27
_LIB_VERSION@GLIBC_2.2.5
lgammal@@GLIBC_2.23
__strtof128_nan@@GLIBC_PRIVATE
pow10@GLIBC_2.2.5
exp2f@GLIBC_2.2.5
pow10l@GLIBC_2.2.5
__assert_fail@@GLIBC_2.2.5
fputs@@GLIBC_2.2.5
matherr@GLIBC_2.2.5
log@@GLIBC_2.29
logf@@GLIBC_2.27
lgammaf@@GLIBC_2.23
feupdateenv@@GLIBC_2.2.5
lgamma@@GLIBC_2.23
GLIBC_2.4
_rtld_global_ro@@GLIBC_PRIVATE
GLIBC_2.18
powf@GLIBC_2.2.5
lgammal@GLIBC_2.2.5
log2f@GLIBC_2.2.5
GLIBC_2.25
powf@@GLIBC_2.27
__strtof_nan@@GLIBC_PRIVATE
exp@GLIBC_2.2.5
exp2@GLIBC_2.2.5
log@GLIBC_2.2.5
lgammaf@GLIBC_2.2.5
fwrite@@GLIBC_2.2.5
lgamma@GLIBC_2.2.5
logf@GLIBC_2.2.5
expf@GLIBC_2.2.5
__cxa_finalize@@GLIBC_2.2.5
exp@@GLIBC_2.29
log2f@@GLIBC_2.27
stderr@@GLIBC_2.2.5
pow@GLIBC_2.2.5
w2j@D208:/lib/x86_64-linux-gnu$ cd
w2j@D208:~$

看样子,glibc-2.29向下兼容至2.24。

Reply View the author
青稚
deepin
2023-03-24 23:07
#14
150******77

glibc是底层库,搞坏了系统直接是启动不了的,所以弄之前先备份系统或者有live系统,,万一挂了,可以吧glibc2.28的软链恢复回来

cd ~/Downloads

wget http://ftp.gnu.org/gnu/glibc/glibc-2.29.tar.gz

解压并进入创建临时目录

tar -zxf glibc-2.29.tar.gz

cd glibc-2.29

mkdir build

cd build/

安装编译依赖

sudo apt-get install gawk bison -y

检测编译环境,生成Makefile

../configure --prefix=/usr/local --disable-sanity-checks

编译

make

安装到系统中

sudo make install

拷贝编译产物

sudo cp /usr/local/lib/libm-2.29.so /lib/x86_64-linux-gnu/

创建链接

cd /lib/x86_64-linux-gnu/

sudo ln -sf libm-2.29.so libm.so.6

查看安装结果

strings /lib/x86_64-linux-gnu/libm.so.6 | grep GLIBC_

打包成deb呗,编译时候换成打包deb的命令。

下次就不用编译了。like

Reply View the author