场景需求
注意更新系统库存在一定的风险, 请谨慎操作
默认的CentOS 6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包往往需要更高版本的glibc库支持, 因此在不升级系统的前提下, 需要主动更新系统glibc库. 一般遇到错误libc.so.6: version GLIBC_2.14 not found
时表示需要对glibc进行升级了。
glibc版本
查看系统glibc库版本可使用如下命令:
$strings/lib64/libc.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.14.tar.gz
当前目录下得到目录glibc-2.14
, 执行$cd glibc-2.14
命令进入目录, 依次执行如下命令编译安装glibc-2.14:
$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库
glibc软链
安装完成后, 建立软链指向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
注意
删除libc.so.6
之后可能导致系统命令不可用的情况, 可使用如下方法解决:
$LD_PRELOAD=/opt/glibc–2.14/lib/libc–2.14.soln–s/opt/glibc–2.14/lib/libc–2.14.so/lib64/libc.so.6
如果上述更新失败可使用如下命令还原:
$LD_PRELOAD=/lib64/libc–2.12.soln–s/lib64/libc–2.12.so/lib64/libc.so.6// libc-2.12.so 此项是系统升级前的版本
此时查看系统glibc版本如下图所示:
可以看到当前glibc最高版本为2.14, libc.so.6软链指向如下图所示:
Linux升级Glibc http://www.linuxidc.com/Linux/2015-04/116472.htm
Linux提示“libc.so.6: version `GLIBC_2.14′ not found”系统的glibc版本太低 http://www.linuxidc.com/Linux/2017-01/139806.htm
危险!GHOST(幽灵)漏洞曝光 http://www.linuxidc.com/Linux/2015-01/112496.htm
GNU glibc 爆 gethostbyname 缓冲区溢出漏洞 http://www.linuxidc.com/Linux/2015-01/112486.htm
glibc gethostbyname缓冲区溢出漏洞(CVE-2015-0235) http://www.linuxidc.com/Linux/2015-01/112516.htm
Linux glibc幽灵漏洞测试与修复方法 http://www.linuxidc.com/Linux/2015-01/112562tm
Linux 升级Glibc2.14 遇到问题及解决 http://www.linuxidc.com/Linux/2017-01/139836.htm
Glibc 的详细介绍:请点这里
Glibc 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/141674.htm