Centos 7 安装nodejs18报错libstc版本问题
1. 升级GCC
Centos 7默认gcc版本为4.8,有时需要更高版本的,这里以升级至7.4.1版本为例,分别执行下面三条命令即可,无需手动下载源码编译
1.1. 安装centos-release-scl
sudo yum install centos-release-scl1.1.1 修改成mirrorlist->baseurl,把baseurl前面的#去掉mirrorlist前面加上#
1.1.2 修改国内镜像
sudo sed -i 's|^baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo
sudo sed -i 's|^baseurl=http://mirror.centos.org|baseurl=http://mirrors.aliyun.com|g' /etc/yum.repos.d/CentOS-SCLo-scl.repo1.2. 安装devtoolset,注意,如果想安装8.版本的,就改成devtoolset-8-gcc,以此类推
sudo yum install devtoolset-7-gcc*1.3. 激活对应的devtoolset,所以你可以一次安装多个版本的devtoolset,需要的时候用下面这条命令切换到对应的版本
scl enable devtoolset-7 bash1.4. 确认
gcc -v2. 升级make
sudo yum install -y make bison
wget http://mirrors.ustc.edu.cn/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/make3. 升级GLIBC
新版的node v18开始 都需要GLIBC_2.27支持
3.1. 下载glibc源码
cd ~
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.28.tar.gz
tar xf glibc-2.28.tar.gz 3.2. 编译
cd glibc-2.28/ && mkdir build && cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install 3.3. 语言库可能会有问题需要更新下语言库
cd /root/glibc-2.28/build && make localedata/install-locales4. 更新libstdc
# 查看缺少GLIBCXX
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
# 下载新版本的libstdc++
cd /usr/lib64/
wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
rm -rf libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.26 libstdc++.so.65. 确认
nvm use v18
node -v