上次看到有同学对Centos系统 glibc升级有点疑问,不过相对来说glibc升级还是比较简单的,网上也有很多介绍文章,这里整理了个安装过程供大家参考下 阅读原文
场景需求
默认的Centos6.5 glibc版本最高为2.12,而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持,因此在不升级系统的前提下,需要主动更新系统glibc库. 一般遇到错误libc.so.6: version GLIBC_2.14 not found
时表示需要对glibc进行升级了.
glibc版本
export LD_LIBRARY_PATH=/usr/local/lib 注意:mpc等所在路径; 而且LD_LIBRARY_PATH首尾不能有$
$ strings /lib64libc.so.6 |grep GLIBC_
Centos6.5输出如下glibc版本列表,从此图可以看出系统最高支持glibc的2.12版本:另外,执行$ ll /lib64/libc**
可以看到此时的libc.so.6是libc-2.12.so的别名,如下图所示:
glibc安装
首先,点击此处下载glibc点击下载,得到glibc-2.14.tar.gz
使用如下命令解压glibc-2.14.tar.gz
:
$ tar -xzvf glibc-2.14targz
当前目录下得到目录glibc-2.14
,250); border:none; margin:0px 1px">$cd glibc-2.14命令进入目录,依次执行如下命令编译安装glibc-2.14:
$ mkdir build // 在glibc-2.14目录下建立build文件夹 $ cd build // 进入build目录 $ ../configure --prefix=/opt/glibc2.14 // 配置glibc并设置当前glibc-2.14安装目录 $ make && make install // 编译安装glibc-2.14库
glibc软链
安装完成后,建立软链指向glibc-2.14,执行如下命令:
$ rm rf // 先删除先前的libc.so.6软链 $ ln s optlibso 6
注意
删除libc.so.6
之后可能导致系统命令不可用的情况,可使用如下方法解决:
$ LD_PRELOADso ln 如果上述更新失败可使用如下命令还原:/lib64/2.12// libc-2.12.so 此项是系统升级前的版本
感谢
丁文翔 <d_9062@qq.com>
指出本文遗漏事项!
此时查看系统glibc版本如下图所示:可以看到当前glibc最高版本为2.14,libc.so.6软链指向如下图所示: