Linux 解决报错“libc.so.6: version GLIBC_2.14 not found“

文章讲述了在遇到Java服务端解析APK时由于glibc版本过低导致的问题。glibc是Linux的C运行库,其版本不匹配阻碍了apktool的使用。解决方案是手动下载并编译安装glibc的2.14版本,然后更新软链接,确保服务器支持新版本。经过这些步骤,问题得到了解决。
摘要由CSDN通过智能技术生成

触发场景
java服务端解析apk装了apktool之后仍无法读取,看一下log发现"libc.so.6: version GLIBC_2.14 not found"

报错原因
查看服务器支持的glibc得知这台服务器最高支持2.12的,而我装的apktool这个版本需要的是2.14版本的。

glibc是啥?
glibc是gnu发布的libc库,即c运行库,glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。

很多linux的基本命令,比如cp, rm, ll,ln等,都得依赖于它,如果操作错误或者升级失败会导致系统命令不能使用,严重的造成系统退出后无法重新进入,所以操作时候需要慎重。 

解决办法(升级glibc)

查看服务器执行的glibc版本

[root@skr1 ~]# strings /lib64/libc.so.6 |grep GLIBC_ 
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_PRIVATE

由上可知:最高支持的是2.12版本。

下载glibc

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

解压

tar -xvf  glibc-2.14.tar.gz
tar -xvf  glibc-ports-2.14.tar.gz

编译(make较费时,耐心等待)

mv glibc-ports-2.14 glibc-2.14/ports
mkdir glibc-2.14/build
cd glibc-2.14/build 

../configure  --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
 
make

安装

make install

查看软链接指向

[root@skr1 build]# ll /lib64/libc.so.6
lrwxrwxrwx 1 root root 12 Dec  5 10:08 /lib64/libc.so.6 -> libc-2.14.so

由上可见/lib64/libc.so.6软链接已经指向libc2.14版本

再次查看服务器支持的glibc版本

[root@skr1 /]# strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE

来源:CSDN 
原文:https://blog.csdn.net/wkh___/article/details/84819564

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值