Centos7 安装 Node18
centos7 因为 glibc 版本太低无法安装 node18,如果想要在 centos7 上使用 node18 就只能自行升级这些库了
首先是安装一些前置的库
yum install bison -y
yum -y install wget bzip2 gcc gcc-c++ glibc-headers
然后就是升级下make
wget http://ftp.gnu.org/gnu/make/make-4.2.1.tar.gz
tar -zxvf make-4.2.1.tar.gz
cd make-4.2.1
mkdir build
cd build
../configure --prefix=/usr/local/make && make && make install
export PATH=/usr/local/make/bin:$PATH
ln -s /usr/local/make/bin/make /usr/local/make/bin/gmake
make -v #查看下版本是否升级成功
然后是升级 gcc 版本
yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile
source /etc/profile
gcc --version # 查看 gcc 版本
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.xz
xz -d glibc-2.28.tar.xz
tar -xvf glibc-2.28.tar
cd glibc-2.28
mkdir build
在编译开始前,最好修改 scripts/test-installation.pl
在其中添加图中代码,以避免编译 nss_test2 报错
cd /root/glibc-2.28/build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --enable-obsolete-nsl
make
make install
需要注意的是如果上面 make 时有关于 make 或 gcc 版本相关的报错,请重新检查 make 和 gcc 的版本,有时候会因为各种莫名其妙的问题导致用的还是旧版的,此时可以尝试重新执行 install 之后的那两步,重新配置环境变量,确保版本没问题
更新之后,如果重新打开终端可能会有一些字符集相关的 warning,所以需要在继续在build目录下执行以下代码,安装字符集
make localedata/install-locales
经过上面的步骤你就能够使用宝塔面板安装node了,但是运行 node 会发现有报错,类似以下这种
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found
你还需要升级 libstdc 库才能正常使用
sudo wget http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip
unzip libstdc.so_.6.0.26.zip
cp libstdc++.so.6.0.26 /lib64/
cd /lib64
# 把原来的命令做备份
cp libstdc++.so.6 libstdc++.so.6.bak
rm -f libstdc++.so.6
# 重新链接
ln -s libstdc++.so.6.0.26 libstdc++.so.6
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX #查看是否安装成功
之后你就可以正常的使用 node18 了