操作系统

当前位置:金沙棋牌 > 操作系统 > 分享Centos6.5升级glibc过程

分享Centos6.5升级glibc过程

来源:http://www.logblo.com 作者:金沙棋牌 时间:2019-11-21 10:21

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

遇到的问题

在执行.bin文件的时候 提示

libc.so.6: version GLIBC_2.14 not found

错误这是由于centos系统为了稳定性,所用的c运行库版本较低,通过

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

可以查看系统所安装的glibc版本 一般centos系统只安装到2.12

 

安装glibc-2.14

到下载地址下载glibc-2.14版本

可以选择glibc-2.14.tar.gz

将下载的压缩包放置到某个目录中,例如/home/目录 开始执行下列shell命令

[root@xxx home]# tar -xzvf glibc-2.14.tar.gz    //解压压缩包
[root@xxx home]# cd glibc-2.14    //进入解压后的文件目录
[root@xxx glibc-2.14]# mkdir build    //创建build文件夹
[root@xxx glibc-2.14]# cd build     //进入build文件夹
[root@xxx build]# ../configure --prefix=/opt/glibc-2.14    // 配置glibc并设置当前glibc-2.14安装目录位/opt/glibc-2.14(安装目录可以自己选择),记住这个安装目录,后面操作需要用到
[root@xxx build]# make -j4     //开启编译加速  4个进程
[root@xxx build]# make install     //开始安装

接下来等待安装完成

解决方案可参照下面链接

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   //建立新的软连接

 1  

注意

删除libc.so.6之后可能导致系统命令不可用的情况, 可使用如下方法创建2.14的链接

$ 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

如果上述更新失败可使用如下命令还原到2.12版本

$ LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6    

此时再通过命令查看glibc可以看到底部有新安装的GLIBC_2.14

 

场景需求

默认的Centos6.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版本: 图片 1 另外, 执行$ ll /lib64/libc**可以看到此时的libc.so.6是libc-2.12.so的别名, 如下图所示: 图片 2

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.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 此项是系统升级前的版本

感谢丁文翔 <d_9062@qq.com>指出本文遗漏事项!

此时查看系统glibc版本如下图所示: 图片 3 可以看到当前glibc最高版本为2.14, libc.so.6软链指向如下图所示: 图片 4

本文由金沙棋牌发布于操作系统,转载请注明出处:分享Centos6.5升级glibc过程

关键词: