一、升级node
这里要先查看之前的node安装方式哦 如果之前是直接解压然后建立软路由的方式 那么直接重新扔个包上去解压了就OK
1. 全局安装n(n是一种node包管理工具)
npm install -g n
2.查看node当前版本
node -v
3.升级版本(升级到最新版,稳定版或指定版本)
#升级至最新版本
n latest
#升级至最新稳定版本
n stable
#升级至指定版本
n 20.18.0
Ps: 如果出现以下问题,请跳转至第二节
'GLIBC_2.27' not found (required by node)
'GLIBC_2.28' not found (required by node)

二、升级GLIBC2.28
1.切换yum源(此步骤非必要步骤,请在后续执行报错后重新执行当前步骤)
CentOS安装时报错Could not retrieve mirrorlist http:// mirrorlist. centos. org,这是因为CentOS停止维护的原因 我们直接使用curl去获取http://mirror.centos.org的镜像会报错,我们需要将其切换成新的镜像源至 vault.centos.org
-----------------报错----------------
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock32 error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; Unknown error
---------------切换镜像源-------------
sed -i s/mirror.centos.org/vault.centos.org/g /etc/yum.repos.d/*.repo
sed -i s/^#.*baseurl=http/baseurl=http/g /etc/yum.repos.d/*.repo
sed -i s/^mirrorlist=http/#mirrorlist=http/g /etc/yum.repos.d/*.repo
##清空缓存并重新生成
sudo yum clean all
sudo yum makecache
2.安装gcc8
# 直接安装 GCC-8 --注意 高版本不一定能编译glic(此步骤可能会报步骤1错误)
$ yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
# 设置环境变量
$ echo "source /opt/rh/devtoolset-8/enable" >> /etc/profile
$ source /etc/profile
#从腾讯镜像源获取gcc8,解压后进入到解压目录
#cd /usr/local 根据个人习惯选择一个安装目录进行下载解压,,一般是在/usr/local/ 下面
wget https://mirrors.cloud.tencent.com/gnu/gcc/gcc-8.5.0/gcc-8.5.0.tar.gz
tar -zxvf gcc-8.5.0.tar.gz
cd gcc-8.5.0
#安装过程中会用到 bzip ,请提前安装
yum -y install bzip2
#构建配置文件 此步骤不要暂停 可能会损坏下载的包
./contrib/download_prerequisites
##开始构建配置文件
mkdir build && cd build/
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
#开始编译 编译这步很慢,预计3~5小时,请合理安排时间
#可以通过多核心构建 ,通过在make后面加-j
#例如 make -j 4 最多运行四个编译命令同时运行,加快编译速度(建议不要超过CPU核心数量的2倍)
make
make install
#验证gcc版本
gcc -v
3.升级make版本
#查看版本 如果是make4请忽略当前步骤
make -v
# 下载压缩包
wget http://ftp.gnu.org/gnu/make/make-4.3.tar.gz
# 解压文件
tar -xzvf make-4.3.tar.gz && cd make-4.3/
# 配置make地址
./configure --prefix=/usr/local/make
# 编译并安装
make && make install
# 将原有软连接重命名备份为make.bak
cd /usr/bin/
mv make make.bak
# 重新建立软连接
ln -sv /usr/local/make/bin/make /usr/bin/make
4.安装bison(非必要报错,此步骤是执行步骤5出现下列错误后执行,也可提前执行)
如果安装步骤中出现 These critical programs are missing or too old: make bison compiler,请安装bison

# 查看bison版本
bison -V
#没有bison就直接安装
yum install bison
5.安装GLIBC_2.28
# 下载并解压 glibc-2.28
#cd /usr/local 根据个人习惯选择一个安装目录进行下载解压,,一般是在/usr/local/ 下面
wget --no-check-certificate https://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
tar -xzvf glibc-2.28.tar.gz
cd glibc-2.28
# 构建配置文件并进行make
$ mkdir build && cd build
# 构建配置文件并进行make
$ ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
$ make
$ make install
安装完后需要替换老版本gcc的动态库
#查找编译gcc时生成的最新动态库
find / -name "libstdc++.so*"
#挑选最新的动态库,注意是选择 stage1-x86_64-pc-linux-gnu 目录下的
/home/lcc/gcc-12.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 #最新动态库
#将上面的最新动态库 libstdc++.so.6.0.30 复制到/usr/lib64目录下:
cp /home/lcc/gcc-12.2.0/stage1-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64
#进入/usr/lib64中删除原来的软链接,改成刚刚复制的最新动态库,具体操作:
cd /usr/lib64
#在这里可以通过ll查看 libstdc++.so.6 当前的指向的地址
#备份删除老连接,创建新链接
mv libstdc++.so.6 libstdc++.so.6.bak
ln -s libstdc++.so.6.0.25 libstdc++.so.6
#重新运行查看动态库
$strings /usr/lib64/libstdc++.so.6 | grep GLIBC
三、升级完毕
这个时候已经安装完毕 可以重新运行下列命令执行安装node版本
#升级至最新版本
n latest
#升级至最新稳定版本
n stable
#升级至指定版本
n 20.18.0
node -v


&spm=1001.2101.3001.5002&articleId=142975025&d=1&t=3&u=d64e679ad10147e0910fbfe7ba590021)
1885

被折叠的 条评论
为什么被折叠?



