公司网站用的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
-
下载glibc-2.17(我操作目录在/usr/local)
wget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.gz
-
解压
tar -zxvf glibc-2.17.tar.gz
-
创建构建目录
mkdir /usr/local/glibc-2.17/build
cd /usr/local/glibc-2.17/build -
开始构建
…/configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
-
编译安装
make && make install
耐心等待一会~
安装成功
再次执行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
- 解压并进入目录
tar -zxvf gcc-6.2.0.tar.gz
cd gcc-6.2.0
- 安装gcc依赖
./contrib/download_prerequisites
- 创建构建目录
mkdir /usr/local/gcc-6.2.0/build
cd /usr/local/gcc-6.2.0/build
- 安装文件
../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.18 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积分)
福利喔:加我粉丝,私信我可免费获得资源