在Centos7.3系统中 node 安装完成 执行node -v
会有异常报错
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)
从报错信息可以看出是一些底层依赖库报错异常,这是由于系统版本太老,导致底层库版本也比较旧,所以需要对底层库升级。
第一步
升级GCC,GCC默认4升级为8。
分别执行下面命令
yum install -y centos-release-scl
yum install -y devtoolset-8-gcc
ln -s /opt/rh/devtoolset-8/root/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-8/root/bin/g++ /usr/bin/g++
第二步
升级make,默认为3升级为4
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
cd /usr/bin/
mv make make.bak
ln -sv /usr/local/make/bin/make /usr/bin/make
第三步
bison 安装
yum install -y bison
第四步
升级 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
../configure --prefix=/usr && make -j4 -s
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make install -s || true
# true 用来忽略一些异常防止失败
make localedata/install-locales
# 防止时区报错 -bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8)
第五步
libstdc++ 升级
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
注意: 安装底层库适当就好,也不要追求最新。追求最新的话要升级的就会变得特别多。
最后再安装最新nodejs 这样就可以正常运行了
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。