如何能成功在centos7下安装nodejs18+以上版本
在centos7系统下安装nodejs18+以上版本会出现如下的问题,这些问题是因为操作系统版本低,无法正常支持18+高版本的nodejs
今天分享一下node-v20.18.0-linux-x64.tar.gz怎么能成功安装成功。关于nodejs源码包的安装这里我们就不在叙述,我们前面有文章的介绍,大家可以查看:centos7下安装nodejs-v16.x - 子墨老师 - 博客园
当node-v20.18.0-linux-x64.tar.gz安装后,我们需要通过命令去验证一下node, npm版本,就会出现如下的错误
[root@localhost nodejs]# node -v
node: /lib64/libm.so.6: version `GLIBC_2.27' 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 `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
解决流程:
- 升级gcc与make
- 更新libstdc++.so.6.0.26
- 更新glibc
后面有关系统的补丁(镜像地址,大家统一使用阿里的镜像源):gnu-glibc安装包下载_开源镜像站-阿里云
详细步骤:
升级gcc与make
1.gcc升级
# 升级GCC(默认为4 升级为8)
yum install -y centos-release-scl bison
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++
但是,当我们执行yum install -y devtoolset-8-gcc*,系统就会提示错误
修改方案如下:
进入到系统yum源
cd /etc/yum.repos.d/
需要修改的内容,如下
baseurl=https://mirrors.aliyun.com/centos/7/sclo/x86_64/rh/ 和 gpgcheck=0
大家参考我电脑里面的配置,如下图
配置好以后,再去尝试:yum install -y devtoolset-8-gcc*,就没有问题
2.make升级
# 升级 make(默认为3 升级为4)
wget https://mirrors.aliyun.com/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
更新libstdc++.so.6.0.26
# 更新lib libstdc++.so.6.0.26
wget http://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
# 替换系统中的/usr/lib64
cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6
更新glibc
推荐先升级一下如下内容
1.通过 yum
安装最新版 Bison
sudo yum install -y bison
2.若后续仍报类似错误(如 flex
、python
缺失),同步安装
sudo yum install -y flex python3
3.再执行如下命令
wget https://mirrors.aliyun.com/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 --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install