安全的升級centos系統glibc共享庫方法
阿新 • • 發佈:2018-11-05
分享Centos6.5升級glibc過程
釋出於 2 年前 作者 ncuzp 65290 次瀏覽 來自 分享
上次看到有同學對Centos系統 glibc升級有點疑問, 不過相對來說glibc升級還是比較簡單的, 網上也有很多介紹文章, 這裡整理了個安裝過程供大家參考下 閱讀原文
場景需求
預設的Centos6.5 glibc版本最高為2.12, 而在進行Nodejs開發時專案所依賴的包往往需要更高版本的glibc庫支援, 因此在不升級系統的前提下, 需要主動更新系統glibc庫. 一般遇到錯誤libc.so.6: version GLIBC_2.14 not found
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 此項是系統升級前的版本
感謝
丁文翔 <[email protected]>
指出本文遺漏事項!
此時檢視系統glibc版本如下圖所示: 可以看到當前glibc最高版本為2.14, libc.so.6軟鏈指向如下圖所示: