由於開發環境的需要,需要在centOS系統上安裝node,所以就開始了一頓操作,但是,在安裝node的過程中報了個錯:
nvm install node
於是在網上需求解決方案,找到如下解決方法:
首先執行如下命令查看系統中找到的最新的GLIBC版本:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
然後執行如下命令查看系統中最新版本的GLIBC庫:
find / -name "libstdc++.so*"
我們發現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
最後我們再查看一下當前系統能找到的GLIBC庫的版本都有哪些:
strings /usr/lib64/libstdc++.so.6 | grep GLIBC
接下來我們繼續安裝node:
nvm install node
結果還是報錯:
這次我們發現缺少庫的目錄是/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)結束後如果出現如下這句話,則代表你安裝成功:
-
查看安裝完成後的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版本爲例,供大家參考!!!