Centos6.5解决“libc.so.6: version GLIBC_2.14 not found”报错问题

遇到的问题:

最近将apktool升级至了2.3.0版本,更新至Centos6.9服上去时,执行打包APK报错:

aapt: /lib64/libc.so.6: version `GLIBC_2.14’ not found (required by aapt)

从上面报错可以看出,程序运行时候,没有找到“GLIBC_2.14”这个版本库,而默认的Centos6.9 glibc版本最高为2.12, 所以需要更新系统glibc库。

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

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

解决办法:

1.查看系统版本和glibc库版本

# cat /etc/redhat-release

CentOS release 6.5 (Final)

# 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

由上面的信息可以看出系统是CentOS 6.5,最高支持glibc的版本为2.12,而研发程序要2.14版本,所以需要升级。

2.下载软件并升级:

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

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

以上完成不报错的话,查看库文件,发现/lib64/libc.so.6软链接指向了2.14版本

# ll /lib64/libc.so.6

/lib64/libc.so.6 -> /lib64/libc-2.14.so

3.再次查看glibc支持的版本:

# 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

可以看到glibc支持的版本已经到2.14,再次执行程序就不会报错了。

你可能感兴趣的:(Centos6.5解决“libc.so.6: version GLIBC_2.14 not found”报错问题)