原因分析
由于Linux系统的glibc版本太低,而软件编译时使用了较高版本的glibc引起
什么是GLIBC
glibc是GNU发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX 通行的标准,可以想见其内容包罗万象。而就像其他的 UNIX 系统一样,其内含的档案群分散于系统的树状目录结构中,像一个支架一般撑起整个操作系统。在 GNU/Linux 系统中,其C函式库发展史点出了GNU/Linux 演进的几个重要里程碑,用 glibc 作为系统的C函式库,是GNU/Linux演进的一个重要里程碑。参考:https://baike.baidu.com/item/glibc?fr=aladdin
解决方案
第一步:查看下当前系统支持的glibc的版本
strings /lib64/libc.so.6 |grep GLIBC_
第二步:根据上面的glibc的定义可知,升级影响还是很大的。所以,看下是否真的需要升级,也就是要安装的软件可否使用低版本上编译生成的,或者采用docker等容器技术绕开的方案
最后,不得不升级,采用如下方式:
$ tar -xzvf glibc-2.14.tar.gz
$ mkdir build // 在glibc-2.14目录下建立build文件夹
$ cd build // 进入build目录
$ ../configure --prefix=/opt/glibc-2.14 // 配置glibc并设置当前glibc-2.14安装目录
$ make && make install // 编译安装glibc-2.14库
# 建立软连接
$ rm -rf /lib64/libc.so.6 // 先删除先前的libc.so.6软链
$ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6
安装过程参考:https://www.jianshu.com/p/e68463ed5c6a
参考
https://blog.csdn.net/sole_cc/article/details/51415940
https://blog.csdn.net/cpplang/article/details/8462768
来源:oschina
链接:https://my.oschina.net/csp277/blog/3192303