在 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ā)效率帅腌!??
這是完整的解決方案驰弄,希望對您有所幫助麻汰!