在 CentOS 7 上安裝 Node.js 20 并升級 GCC、make 和 glibc

在 CentOS 7 上安裝 Node.js 20 并升級 GCC桂塞、make 和 glibc

?? 前言

在 CentOS 7 上使用 NVM 安裝 Node.js 后凹蜂,可能會遇到如下問題:

node: /lib64/libm.so.6: version `GLIBC_2.27’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.25’ not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.28’ not found (required by node)

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20’ not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21’ not found (required by node)


這是因為 Node.js 20 及更新版本需要更高版本的 glibc(至少 2.27)。本文將介紹如何解決這些問題,升級相關(guān)依賴項玛痊,并順利安裝 Node.js 20汰瘫。

?? 安裝 Node.js 20 和升級所需組件

1. 升級 GCC 和 make

CentOS 7 默認的 GCC 版本為 4.x,make 版本為 3.x擂煞。在安裝 Node.js 20 之前混弥,您需要升級 GCC 和 make 版本。

升級 GCC 到 8.x

# 安裝 centos-release-scl

yum install -y centos-release-scl

# 安裝 devtoolset-8 包來獲取較新的 GCC

yum install -y devtoolset-8-gcc*

# 更改 GCC 的默認版本

mv /usr/bin/gcc /usr/bin/gcc-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc

# 更新 G++ 到 8.x

mv /usr/bin/g++ /usr/bin/g++-4.8.5

ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++


升級 make 到 4.x

# 下載 make 4.3 版本的源碼包

wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz

# 解壓并進入目錄

tar -xzvf make-4.3.tar.gz && cd make-4.3/

# 配置并安裝

./configure --prefix=/usr/local/make

make && make install

# 更改 make 鏈接

cd /usr/bin/ && mv make make.bak

ln -sv /usr/local/make/bin/make /usr/bin/make


2. 更新 glibc 到 2.28

新版的 Node.js 需要更高版本的 glibc(至少 2.27)对省,因此我們需要手動更新 glibc 版本蝗拿。

下載 glibc 2.28 源碼包

# 下載 glibc 2.28 源碼包

wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz

# 解壓并進入目錄

tar -xf glibc-2.28.tar.gz

cd glibc-2.28/ && mkdir build && cd build


配置并編譯安裝 glibc

# 配置 glibc 編譯環(huán)境

../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin

# 安裝缺失的工具,如 make 和 bison

yum install -y make bison

# 編譯并安裝 glibc

make && make install


可能出現(xiàn)的錯誤:

? 如果遇到 bison 版本過低的錯誤蒿涎,可以使用以下命令安裝 bison:

yum install -y bison

1

3. 升級 libstdc++.so.6

在升級 glibc 后哀托,我們還需要更新 libstdc++.so.6 庫。執(zhí)行以下步驟來升級 libstdc++:

# 刪除舊版本的 libstdc++.so.6

rm -f /usr/lib64/libstdc++.so.6

# 下載高版本的 libstdc++

wget http://ftp.gnu.org/gnu/gcc/gcc-8.3.0/libstdc++-8.3.0.tar.gz

# 解壓并安裝新版本的 libstdc++

tar -xvzf libstdc++-8.3.0.tar.gz

cd libstdc++-8.3.0

./configure --prefix=/usr/local

make && make install

# 添加軟連接

ln -s /usr/local/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6


?? 驗證 Node.js 安裝

升級完 glibc 和相關(guān)庫后劳秋,可以繼續(xù)安裝 Node.js 20 并驗證安裝情況仓手。

1. 使用 NVM 安裝 Node.js 20

首先安裝 NVM(如果未安裝):

# 安裝 NVM

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash

# 加載 nvm 配置

source ~/.bashrc

# 安裝 Node.js 20

nvm install 20

2. 驗證 Node.js 版本

# 檢查 Node.js 版本

node -v

# 檢查 npm 版本

npm -v


代碼解釋

?? 總結(jié)

通過升級 GCC、make 和 glibc玻淑,并安裝高版本的 libstdc++嗽冒,您可以在 CentOS 7 上成功安裝和運行 Node.js 20,解決因 glibc 版本不兼容導致的問題补履。以上步驟涵蓋了所有的必要操作添坊,確保您能順利進行開發(fā)與部署。

希望本文能夠幫助您解決安裝 Node.js 20 時遇到的依賴問題干像,提升您的開發(fā)效率帅腌!??

這是完整的解決方案驰弄,希望對您有所幫助麻汰!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市戚篙,隨后出現(xiàn)的幾起案子五鲫,更是在濱河造成了極大的恐慌,老刑警劉巖岔擂,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件位喂,死亡現(xiàn)場離奇詭異,居然都是意外死亡乱灵,警方通過查閱死者的電腦和手機塑崖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痛倚,“玉大人规婆,你說我怎么就攤上這事。” “怎么了抒蚜?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵掘鄙,是天一觀的道長。 經(jīng)常有香客問我嗡髓,道長操漠,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任饿这,我火速辦了婚禮浊伙,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘长捧。我一直安慰自己吧黄,他們只是感情好,可當我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布唆姐。 她就那樣靜靜地躺著拗慨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奉芦。 梳的紋絲不亂的頭發(fā)上赵抢,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天,我揣著相機與錄音声功,去河邊找鬼烦却。 笑死,一個胖子當著我的面吹牛先巴,可吹牛的內(nèi)容都是我干的其爵。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼伸蚯,長吁一口氣:“原來是場噩夢啊……” “哼摩渺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剂邮,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤摇幻,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后挥萌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體绰姻,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年引瀑,在試婚紗的時候發(fā)現(xiàn)自己被綠了狂芋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡憨栽,死狀恐怖帜矾,靈堂內(nèi)的尸體忽然破棺而出辆影,到底是詐尸還是另有隱情,我是刑警寧澤黍特,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布蛙讥,位于F島的核電站,受9級特大地震影響灭衷,放射性物質(zhì)發(fā)生泄漏次慢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一翔曲、第九天 我趴在偏房一處隱蔽的房頂上張望迫像。 院中可真熱鬧,春花似錦瞳遍、人聲如沸闻妓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽由缆。三九已至,卻和暖如春猾蒂,著一層夾襖步出監(jiān)牢的瞬間均唉,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工肚菠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留舔箭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓蚊逢,卻偏偏與公主長得像层扶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子烙荷,可洞房花燭夜當晚...
    茶點故事閱讀 44,713評論 2 354