问题记录——linux安装高版本Nodejs无法兼容问题

在centos7安装Node18的版本时报错如下

node: /lib64/libm.so.6: version `GLIBC_2.27not found (required by node)

解决这个问题饶了比较远的路,这里简单进行一下汇总。

1、安装gcc所需依赖

我是通过nvm直接安装的node,但是版本不兼容,需要升级glibc,而升级glibc需要升级相应的一系列工具,最后才是升级glibc。首先需要的就是升级gcc

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有问题,所以通过源码的形式安装,报错如下
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+.

错误信息中说明,安装gcc需要这三个依赖:GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+。

1.1 下载安装包

下载地址

wget http://gcc.gnu.org/pub/gcc/infrastructure/gmp-6.1.0.tar.bz2
wget http://gcc.gnu.org/pub/gcc/infrastructure/mpfr-3.1.4.tar.bz2
wget http://gcc.gnu.org/pub/gcc/infrastructure/mpc-1.0.3.tar.gz

这里可以手动下载也可以wget下载。

1.2 安装GMP

tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
./configure
make
sudo make install

1.3 安装MPFR

tar -jxvf mpfr-3.1.4.tar.bz2
cd mpfr-3.1.4
./configure
make
sudo make install

1.4 安装MPC

tar -zxvf mpc-1.0.3.tar.gz
cd mpc-1.0.3
./configure
make
sudo make install

2 升级gcc

2.1 下载gcc源码

wget https://ftp.gnu.org/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.gz

2.2 解压缩源代码

使用tar命令解压缩下载的GCC源代码:

tar -xzf gcc-8.3.0.tar.gz

2.3 创建工作目录

创建一个用于编译GCC的工作目录:

mkdir gcc-build
cd gcc-build

2.4 配置和编译GCC

在工作目录中配置GCC编译选项,并编译GCC。这将需要一些时间来完成:

../gcc-8.3.0/configure --prefix=/usr/local/gcc-8.3.0 --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j$(nproc)

2.5 安装GCC

编译完成后,安装GCC到指定目录:

sudo make install

2.6 更改配置文件

修改~./bashrc文件
最后加上

export PATH=/usr/local/gcc-8.3.0/bin:$PATH

通过以下命令更新配置

source ~/.bashrc

2.7 查看版本

gcc --version

3、升级glibc

3.1 升级gcc与make

升级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++

3.2 升级 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

3.3 更新libstdc++.so.6.0.26

# 更新lib libstdc++.so.6.0.26
 
wget https://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

3.4 更新glibc

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 --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make && make install


3.5 验证

npm -v
node -v

参考资料

升级glibc
安装gcc所需依赖
升级gcc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值