公司网站用的Nuxt开发的,本地开发环境NodeJS已经升级到16.14.2版本,服务器也要从12版本升级到16.14.2

如需本次安装的资源,请下滑到文章下面下载整套资源

NodeJS版本下载地址:https://nodejs.org/dist/v16.14.2

解压安装node后,执行node命令,提示如下问题

node: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.17' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by node)
node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by node)

首先安装GLIBC

  1. 下载glibc-2.17(我操作目录在/usr/local)

    wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.gz

  2. 解压

    tar -zxvf glibc-2.17.tar.gz

  3. 创建构建目录

mkdir /usr/local/glibc-2.17/build
cd /usr/local/glibc-2.17/build
  1. 开始构建
../configure --prefix=/usr
  1. 编译安装
make && make install

耐心等待一会~

查看版本

ldd --version

安装成功
在这里插入图片描述
再次执行node命令,发现已经不提示缺少GLIBC,接下来安装GLIBCXX

[root@iZwz9c90hgrhj2qqxm2h77Z bin]# ./node -v
./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./node)
./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.18' not found (required by ./node)
./node: /usr/lib64/libstdc++.so.6: version `CXXABI_1.3.5' not found (required by ./node)
./node: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./node)

更新gcc并用里面的包升级GLIBCXX

gcc官网

https://gcc.gnu.org/

gcc下载镜像列表

https://gcc.gnu.org/mirrors.html

选用netgull镜像站点下载

http://www.netgull.com/gcc/releases/gcc-6.2.0/gcc-6.2.0.tar.gz
  1. 解压并进入目录
tar -zxvf gcc-6.2.0.tar.gz
cd gcc-6.2.0
  1. 安装gcc依赖
./contrib/download_prerequisites
  1. 创建构建目录
mkdir /usr/local/gcc-6.2.0/build
cd /usr/local/gcc-6.2.0/build
  1. 安装文件
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

5.编译安装

make && make install

耐心等待一会~

安装成功
在这里插入图片描述

升级GLIBCXX

进入gcc构建目录下面的libs包,此libs是隐藏文件夹,可以通过设置查看隐藏文件夹

cd /usr/local/gcc-6.2.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs

复制libs下面的libstdc++.so.6.0.22至/usr/lib64

cp /usr/local/gcc-6.2.0/build/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.22 /usr/lib64

复制后参考图
在这里插入图片描述
进入 /usr/lib64并删除旧的软连接,创建新的软连接即可

cd /usr/lib64
rm -r libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6

最终查看GLIBCXX最新版本,已经更新至3.4.22版本了,也就包含了node依赖的GLIBCXX版本

[root@iZwz9c90hgrhj2qqxm2h77Z lib64]# strings /usr/lib64/libstdc++.so.6|grep GLIBCXX
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_FORCE_NEW
GLIBCXX_DEBUG_MESSAGE_LENGTH

最终执行node命令

[root@iZwz9c90hgrhj2qqxm2h77Z lib64]# node -v
v16.14.2

已经成功升级到16.14.2版本,到此结束~

此次升级花了半天时间摸索,总结经验分享给大家,祝你顺利

点赞关注~~

【推荐阅读】

数据库防护做不好,分分钟要被勒索比特币,每个接触数据库的都必须知道

【资源包下载】
https://download.csdn.net/download/qq_19260029/87499817(下载需3积分)
福利喔:加我粉丝,私信我可免费获得资源

在这里插入图片描述

Logo

更多推荐