nodejs18+ 不再支持 CentOS 了,原因是 CentOS7 版本的 glibc 等库太老旧。所以理论上如果要支持 nodejs18 就得把相关的动态链接库升级上去就可以了。
主要是升级 glibc 和 gcc 的版本。
前置步骤
yum -y update
yum -y groupinstall "Development Tools"
yum install -y glibc-static libstdc++-static
yum install -y centos-release-scl
升级 glibc 的步骤
wget https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz --no-check-certificate
tar -xzvf glibc-2.28.tar.gz
cd glibc-2.28
mkdir build && cd build
../configure--prefix=/usr--disable-profile--enable-add-ons--with-headers=/usr/include --with-binutils=/usr/bin --enable-obsolete-nsl
# 用 vim 修改 scripts/test-installation.pl 第128行,增加 && $name ne "nss_test2" 条件,解决编译错误 nss_test2 报错。
make && make install
# 编译过程有点长。
升级 gcc 的步骤
wget https://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
tar -xzvf gcc-7.3.0.tar.gz
cd gcc-7.3.0
make dir build && cd build
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make && make install
# 不出意外,以上过程会完整结束,就是 make 编译的时间比较长。
cp /usr/local/lib64/libstdc++.so.6.0.24 /usr/lib64/
ln -sf /usr/lib64/libstdc++.so.6.0.24 /usr/lib64/libstdc++.so.6
#这样 7.3.0 版本的 gcc 就安装完成了。
按照 nodejs 官网使用 nvm 安装 nodejs18 即可。