如何安全的升級centos系統上的glibc庫

由於開發環境的需要,需要在centOS系統上安裝node,所以就開始了一頓操作,但是,在安裝node的過程中報了個錯:

nvm install node

111
於是在網上需求解決方案,找到如下解決方法:
首先執行如下命令查看系統中找到的最新的GLIBC版本:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

222
然後執行如下命令查看系統中最新版本的GLIBC庫:

find / -name "libstdc++.so*"

333
我們發現6.0.25是當前系統中存在的最新版本GLIBC庫,我們要讓系統的GLIBC庫指向這個最新的庫,做如下操作即可:

cp /root/miniconda3/lib/libstdc++.so.6.0.25 /usr/lib64/  
cd /usr/lib64  
rm -rf libstdc++.so.6  
ln -s libstdc++.so.6.0.25 libstdc++.so.6

444
最後我們再查看一下當前系統能找到的GLIBC庫的版本都有哪些:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC  

接下來我們繼續安裝node:

nvm install node  

結果還是報錯:
555
這次我們發現缺少庫的目錄是/lib64。
繼續在網上尋找解決方案,最後找到一個可靠的解決方案如下:
首先給大家介紹一下glibc以及我們直接操作它的後果:

glibc是gnu發佈的libc庫,即c運行庫,glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴於glibc。  
glibc除了封裝linux操作系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。  
很多linux的基本命令,比如cp, rm, ll,ln等,都得依賴於它,如果操作錯誤或者升級失敗會導致系統命令不能使用,  
嚴重的造成系統退出後無法重新進入,所以操作時候需要慎重!!!  

好了,那麼知道後果之後,大家就不要輕舉妄動了,跟着我的腳步一步一步來保你萬事大吉,因爲本人試驗多次,上述雷區也踩過,不過不要緊,如果你在操作過程中不幸發生了上述問題,請看我的這篇文章《由於某種原因升級了centOS系統的glibc庫導致了系統linux命令大部分不可使用!》,包您滿意!

廢話少說,我們直接來操作:

  • 首先我們安裝必要的庫:

      yum install -y gcc  
    
  • 然後查看現有GLIBC的最新版本:

      ldd --version  
      
      # 顯示如下:  
      ldd (GNU libc) 2.12
      Copyright (C) 2010 Free Software Foundation, Inc.
      This is free software; see the source for copying conditions.  There is NO
      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      Written by Roland McGrath and Ulrich Drepper.  
    
  • 查看系統現有包中能安裝的GLIBC版本:

      strings /lib64/libc.so.6 | grep GLIBC  
      
      # 顯示結果如下:  
      GLIBC_2.2.5
      GLIBC_2.2.6
      GLIBC_2.3
      GLIBC_2.3.2
      GLIBC_2.3.3
      GLIBC_2.3.4
      GLIBC_2.4
      GLIBC_2.5
      GLIBC_2.6
      GLIBC_2.7
      GLIBC_2.8
      GLIBC_2.9
      GLIBC_2.10
      GLIBC_2.11
      GLIBC_2.12
      GLIBC_PRIVATE  
    
      # 可見,CentOS6能夠支持的最高版本也就是2.12了,所以我們必須要去官網下載2.17的版本手動進行安裝。  
    
  • 下載並安裝GLIBC-2.17(下列命令請逐條執行!順序不可打亂!!!):

      wget https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz
      tar –zxvf glibc-2.17.tar.gz
      cd glibc-2.17
      mkdir build
      cd build
      ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
      make –j4
      make install  
    
  • 源碼編譯安裝(make install)結束後如果出現如下這句話,則代表你安裝成功:
    666

  • 查看安裝完成後的GLIBC版本:

      ldd --version  
      
      # 結果顯示如下:  
      ldd (GNU libc) 2.17
      Copyright (C) 2012 Free Software Foundation, Inc.
      This is free software; see the source for copying conditions.  There is NO
      warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      Written by Roland McGrath and Ulrich Drepper.  
    
  • 至此,GLIBC庫安全升級成功,我們再來重新安裝node:

      nvm install node  
      
      # 結果顯示如下:  
      v12.0.0 is already installed.
      Now using node v12.0.0 (npm v6.9.0)  
    
  • 接下來我們就能使用node去幹很多事情了。

      node -v  
      
      # 顯示結果如下:  
      v12.0.0
    

總結

當然了,各位小夥伴如果遇到了其它版本的GLIBC庫NOT FOUND的情況,可以使用類似的方法去解決,本文僅以2.17版本爲例,供大家參考!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章