Centos6.5升级glibc

默北 Linux1 10,8965字数 1103阅读3分40秒阅读模式

场景需求

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

glibc版本

查看系统glibc库版本可使用如下命令:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

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

Centos6.5输出如下glibc版本列表, 从此图可以看出系统最高支持glibc的2.12版本:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

glibc文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

另外, 执行$ ll /lib64/libc**可以看到此时的libc.so.6是libc-2.12.so的别名, 如下图所示:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

glibc文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

glibc安装

首先, 点击此处下载glibc点击下载, 得到glibc-2.14.tar.gz使用如下命令解压glibc-2.14.tar.gz:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

$ tar -xzvf glibc-2.14.tar.gz

当前目录下得到目录glibc-2.14, 执行$cd glibc-2.14命令进入目录, 依次执行如下命令编译安装glibc-2.14:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

$ 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, 执行如下命令:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

$ 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.ttlsa.com/linux/centos-upgrade-glibc/

删除libc.so.6之后可能导致系统命令不可用的情况, 可使用如下方法解决:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

$ 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

如果上述更新失败可使用如下命令还原:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

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

此时查看系统glibc版本如下图所示:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

glibc文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

可以看到当前glibc最高版本为2.14, libc.so.6软链指向如下图所示:文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

glibc文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/ 文章源自运维生存时间-https://www.ttlsa.com/linux/centos-upgrade-glibc/

weinxin
我的微信
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~
默北
  • 本文由 发表于 03/02/2017 15:17:17
  • 转载请务必保留本文链接:https://www.ttlsa.com/linux/centos-upgrade-glibc/
评论  1  访客  1
    • 淡定的但丁
      淡定的但丁 0

      都是泪,前几天升级RHEL5上的GLIBC用来支持NODEJS。。。直接升到崩溃了,而且还忘了打快照!!!云环境下也进不去救援模式。
      各位一定得小心操作 啊!能备份就多备份! :sad:

    评论已关闭!