場景需求
注意更新系統庫存在一定的風險, 請謹慎操作
預設的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版本:
#另外, 執行$ 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.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版本如下圖所示:
#可以看到目前glibc最高版本為2.14, libc.so.6軟鏈指向如下圖所示:
#以上是Centos6.5升級glibc的詳細步驟的詳細內容。更多資訊請關注PHP中文網其他相關文章!