分享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

相關文章
相關標籤/搜索