分享Centos6.5升级glibc过程

默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包每每须要更高版本的glibc库支持, 所以在不升级系统的前提下, 须要主动更新系统glibc库. 通常遇到错误libc.so.6: version GLIBC_2.14 not found时表示须要对glibc进行升级了.node

 

解决方案可参照下面连接ui

 1 https://cnodejs.org/topic/56dc21f1502596633dc2c3dc spa

 

场景需求

默认的Centos6.5 glibc版本最高为2.12, 而在进行Nodejs开发时项目所依赖的包每每须要更高版本的glibc库支持, 所以在不升级系统的前提下, 须要主动更新系统glibc库. 通常遇到错误libc.so.6: version GLIBC_2.14 not found时表示须要对glibc进行升级了.3d

glibc版本

查看系统glibc库版本可以使用以下命令:code

$ strings /lib64/libc.so.6 |grep GLIBC_

Centos6.5输出以下glibc版本列表, 今后图能够看出系统最高支持glibc的2.12版本: glibc-2.12 另外, 执行$ ll /lib64/libc**能够看到此时的libc.so.6是libc-2.12.so的别名, 以下图所示: glibc-2.12-llblog

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:get

$ 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, 执行以下命令:string

$ rm -rf /lib64/libc.so.6 // 先删除先前的libc.so.6软链 $ ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

注意it

删除libc.so.6以后可能致使系统命令不可用的状况, 可以使用以下方法解决:

$ LD_PRELOAD=/opt/glibc-2.14/lib/libc-2.14.so ln -s /opt/glibc-2.14/lib/libc-2.14.so /lib64/libc.so.6

若是上述更新失败可以使用以下命令还原:

$ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6 // libc-2.12.so 此项是系统升级前的版本


可是若是实在不幸,在升级glibc时挂掉了,执行各类命令都提示错误,好比:
Segmentation fault
或者:
error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory
这类错误出现千万不要着急退出SSH,执行下面的命令是能够挽救的:
# cd /lib64

# LD_PRELOAD=/lib64/libc-2.15.so ln -sf /lib64/libc-2.15.so libc.so.6

  



此时查看系统glibc版本以下图所示: glibc 能够看到当前glibc最高版本为2.14, libc.so.6软链指向以下图所示: ll

相关文章
相关标签/搜索