在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 这样就可以正常运行了


淡紫色的风鹏
22 声望5 粉丝

科技爱好者,专注无边界