'GLIBC_2.18' not found and `CXXABI_1.3.9' not found

错误

fd: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by fd)

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

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

解决

1、下载文件
下载地址:https://mirrors.tuna.tsinghua.edu.cn/gnu/glibc/glibc-2.18.tar.gz

2、安装部署
解压
tar -zxvf  glibc-2.18.tar.gz

创建编译目录
cd glibc-2.18 
mkdir build

编译、安装
cd build/
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

make -j 8
make install

升级后可以通过strings /lib64/libc.so.6 | grep ^GLIBC验证是否有指定版本。

文档:`GLIBC_2.18' not found and `CXXABI_1...

libstdc++.so.6.0.22 下载
链接:http://note.youdao.com/noteshare?id=75b92d0f9b51f5c147447188372566e6&sub=4854C556C8964BA9A70296BCE07C511D

出现这个问题的原因是没有链接到CXXABI库的最新的版本。 1,通过下面的命令查看/usr/lib64/下的动态库版本
strings /usr/lib64/libstdc++.so.6 | grep 'CXXABI'
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3

 

1.1 通过下面的命令查看gcc最新态库版
find / -name "libstdc++.so.*"

 

2, 从网上下载所需要的libstdc++.so.6.0.22版本。 3, libstdc++.so.6.0.22拷贝到/usr/lib64目录下。
cp libstdc++.so.6.0.22 /usr/lib64/

 

4, 删除原来的libstdc++.so.6符号连接。
rm -rf libstdc++.so.6

 

5, 新建新符号连接。
  ln -s libstdc++.so.6.0.22 libstdc++.so.6

 

 

上一篇:Neo4j Required identifier property not found for class


下一篇:-bash: php: command not found