目录
一、升级需求
默认的RedHat6.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_
RedHat6.5输出如下glibc版本列表, 从此图可以看出系统最高支持glibc的2.12版本:
另外, 执行# ls -lrt /lib64/libc*可以看到此时的libc.so.6是libc-2.12.so的别名, 如下图所示:
三、glibc安装
3.1、下载glibc安装包,并编译安装
首先, 点击此处下载glibc点击下载(http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz), 得到glibc-2.14.tar.gz之后,需要编译安装,操作如下:
# tar -xzvf glibc-2.14.tar.gz
# cd glibc-2.14
# mkdir build ----在glibc-2.14目录下建立build文件夹
# cd build
# ../configure --prefix=/opt/glibc-2.14 ----配置glibc并设置glibc-2.14安装目录,我这里安装在了/opt目录下了,大家也可以根据自己的实际情况,更换安装目录。
# make && make install ----编译安装glibc-2.14库
3.2、创建glibc软链接
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 ----创建新的glibc软链接
注:删除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版本如下图所示:
# strings /lib64/libc.so.6 |grep GLIBC_
通过以下名利可以看到系统中当前glibc最高版本为2.14, libc.so.6软链指向如下图所示:
# ls -lrt /lib64/libc*
到此为止,系统中的glibc的版本已成功升级完成。