背景:
通过sonarqube做代码检测的时候,日志报错,提示信息:未安装nodejs(linux)。

注意:
安装版本与linux内核版本匹配
安装过程:
1、验证当前系统是否已安装:
[root@SpringCloud app]# npm -v

发现之前安装的有问题。
2、查看当前安装的版本:
[root@SpringCloud app]# nvm ls

3、分析报错
这个错误表明系统中安装的 Node.js 版本需要更高版本的 GLIBC(GNU C Library) 和 libstdc++(GNU Standard C++ Library),而当前系统中的库版本过低,无法满足 Node.js 的运行要求。这种情况常见于较旧的 Linux 发行版(如 CentOS 7、RHEL 7 等)尝试运行较新的 Node.js 版本时。
- GLIBC 版本不足:Node.js 需要
GLIBC_2.25、GLIBC_2.27、GLIBC_2.28,但系统可能只提供GLIBC_2.17(如 CentOS 7 默认版本)。 - libstdc++ 版本不足:Node.js 需要
GLIBCXX_3.4.20、GLIBCXX_3.4.21、CXXABI_1.3.9,但系统可能只提供较旧版本(如GLIBCXX_3.4.19)。
4、检查当前 GLIBC 版本:
[root@SpringCloud ~]# ldd --version

4、卸载当前版本:
[root@SpringCloud app]# nvm uninstall v20.19.5
Uninstalled node v20.19.5
[root@SpringCloud app]# nvm ls

5、安装兼容的 Node.js 版本
选择与当前系统 GLIBC 版本兼容的 Node.js 版本。例如:
- CentOS 7(GLIBC 2.17):最高支持 Node.js v16.x(Node.js 17+ 需要 GLIBC 2.28)。
# 使用 nvm(Node Version Manager)安装
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 16
nvm use 16

或直接下载二进制包:
wget https://nodejs.org/dist/v16.20.2/node-v16.20.2-linux-x64.tar.xz
tar -xvf node-v16.20.2-linux-x64.tar.xz
export PATH=$PWD/node-v16.20.2-linux-x64/bin:$PATH
版本验证
1、检查新版本情况
[root@SpringCloud app]# npm -v
8.19.4
[root@SpringCloud app]# node -v
v16.20.2


2205

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



