centos 7 安装nodejs18+版本报错的问题修复记录

文章讲述了作者在阿里云ECS上部署Node.js项目时遇到的困难,涉及版本兼容性问题,如GLIBC版本不足,以及如何通过yum、devtoolset和手动编译解决过程中的错误。作者强调了使用命令行而非appnode工具的重要性,并分享了解决问题的关键步骤和经验教训。

今天公司搞的一台阿里云ECS需要部署nodejs项目,需要的nodejs版本挺高

需要18版本以上,而且最好20,感觉上比较先进,哈哈

安装nodejs 16可以,但是18 19 20 21  统统装不上,报错如下:

Downloading and installing node v20.11.1...
Downloading https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.xz...
######################################################################## 100.0%
Computing checksum with sha256sum
Checksums matched!
node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)
node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)
node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)
node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)
nvm is not compatible with the npm config "prefix" option: currently set to ""
Run `nvm use --delete-prefix v20.11.1` to unset it.

关键错误提炼: ode: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)

于是就尝试去装呗,反正是个空的,随便折腾哈哈

查到说GLIBC装高版本可以向下兼容低版本,所以……

先去找这个怎么装,找到一篇不错的文章,按顺序操作就行了

解决:centos7 中node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found (required by node)_node: /lib64/libm.so.6: version `glibc_2.27' not f-优快云博客

开搞!

执行第一句就卡住了😓

yum install -y devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils

提示No package devtoolset-8-gcc available.  源的问题吗?换了也不行,果断再去找找,哈哈很快发现另一篇解决方法:

关于“没有可用软件包 devtoolset-9-gcc-c++”的解决办法_source /etc/profile 没有devtoolset-9/文件或目录-优快云博客

按这篇博文的说法 

执行:

yum list installed|grep "scl"

我这里显示空的第二步跳过,直接装他让装的

yum install -y centos-release-scl centos-release-scl-rh

 然后回去执行我之前那句,就好了,真棒,继续装下去!

有几个注意的地方:

  1. ./contrib/download_prerequisites  这步也挺慢,看起来像是从ftp里下东西,只要网络正常倒是能下  就是不快
  2. make 这步最慢,博主大人也说了可以分进程同时运行命令,但我真的好奇能有多慢……确实需要等好~~~~~久
    如果知道自己的机器核心数,最好听话让他快点,不要像我这么好奇😄

 是真的好~~~~~~慢啊😭 执行了将近俩小时才完……

执行完make install 直接重启,按道理不可能生效的

 gcc成功安装,继续!

make升级过程中,执行make又报错了😔

make[3]: *** [concat-filename.o] Error 1
make[3]: Leaving directory `/root/make-4.3/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/make-4.3/lib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/root/make-4.3/lib'
make: *** [all-recursive] Error 1 

真的是   继续查咋解决,各种搜索,发现大家都挺正常的构建完了,我这怎么报错了呢?

先从环境入手,首先排除目录和账号,发现root账号换了目录,也还是报错,那就是我的appnode的问题了!

果断进阿里云的远程连接,发现竟然顺利安装完,然后备份&建立软连接,输入make -v 哈哈  搞定!

继续!安装GLIBC_2.28!

用cd ~ 回到root目录,继续一行一行执行命令

又卡住,报错:

configure: error:

*** These critical programs are missing or too old: bison

*** Check the INSTALL file for required versions.

明显,说我bison这个没有 去装!

yum install bison

按接下来的说明,一顿操作,安装node21版本,成功!

总结一下:

  1. 干这种事,最好是直接做ssh连接命令行,不要用appnode这类工具系统提供的命令行,会有些限制
  2. 发生报错不要迷茫,把报错关键信息找到,去搜索,如果没有找到答案,别慌,先试试下一步走不走得通,走得通就先忽略试试
  3. 尝试领悟linux中生成安装的步骤,明白背后的软件系统原理:
    下载 → 进目录 → configure → make → make install → 替换/软链接

好啦!收工! 

<think>好的,我需要帮助用户找到关于在Linux系统上安装、配置和使用Node.js 18版本的相关资料。首先,用户提到了引用[1]到[4],这些引用提供了官方文档链接、下载版本问题、glibc版本兼容性问题以及安装后遇到的Python相关错误。我需要整合这些信息,确保回答结构清晰,符合用户的要求。 首先,用户需要安装Node.js v18,所以应该先介绍下载和安装步骤。根据引用[2],用户可能需要下载特定版本,比如node-v18.x.x-linux-x64.tar.gz,并解压安装。然后,配置环境变量,让系统识别node和npm命令。这部分需要详细说明步骤,比如修改.bashrc或/etc/profile文件,并source使其生效。 接下来,用户提到的引用[3]指出CentOS 7.x的glibc版本过低,可能导致运行Node.js时报错。这里需要提醒用户检查glibc版本,如果版本过低,可能需要升级系统或使用其他方式安装Node.js,比如使用nvm(Node Version Manager)来管理版本,避免系统库的问题。 然后,引用[4]提到安装后运行npm install时出现与Python相关的错误。这可能是因为某些npm包需要node-gyp进行编译,而node-gyp依赖Python和构建工具。需要指导用户安装Python 2.x或3.x,以及gcc、make等构建工具,确保这些依赖已正确安装。 此外,用户可能需要验证安装是否成功,通过node -v和npm -v命令检查版本。还可以建议使用nvm来管理多个Node.js版本,方便切换和测试不同项目。 最后,应用场景部分可以提到Node.js 18的新特性,比如V8引擎的更新、ES模块支持的改进等,帮助用户了解升级后的优势。同时,常见问题解答可以涵盖权限问题(如全局安装包需要sudo)、镜像源配置(使用淘宝npm镜像加速下载)等。 需要确保所有步骤都符合LaTeX格式要求,数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能用到的数学内容较少,主要注意代码块和引用标注。引用标识要自然添加在相关段落末尾,如[^1]、[^2]等。 总结回答结构: 1. 安装前准备:检查glibc版本,下载正确安装包 2. 安装步骤:解压、配置环境变量 3. 验证安装 4. 使用nvm管理版本(可选) 5. 常见问题解决:Python依赖、镜像源、权限问题 6. 应用场景和新特性 7. 相关参考资料和引用 需要确保各部分信息准确,特别是引用中的链接和问题对应解决方案。可能还需要补充一些用户可能遇到的问题,比如PATH设置错误、权限不足等,以及如何解决。</think>### Linux系统Node.js v18安装配置及使用说明 #### 一、安装前准备 1. **系统兼容性检查** Node.js v18要求glibc版本≥2.28。使用以下命令检查当前系统glibc版本: ```bash ldd --version | grep glibc ``` 若版本低于2.28(如CentOS 7.x默认glibc 2.17),需升级系统或改用其他安装方式(如通过`nvm`管理Node.js版本)[^3]。 2. **下载安装包** 访问Node.js官网,选择Linux对应版本(如`node-v18.xx.x-linux-x64.tar.xz`)下载: ```bash wget https://nodejs.org/dist/latest-v18.x/node-v18.xx.x-linux-x64.tar.xz ``` --- #### 二、安装步骤 1. **解压安装包** ```bash tar -xvf node-v18.xx.x-linux-x64.tar.xz -C /usr/local/lib/ ``` 2. **配置环境变量** 编辑`~/.bashrc`或`/etc/profile`文件,添加以下内容: ```bash export PATH=/usr/local/lib/node-v18.xx.x-linux-x64/bin:$PATH ``` 生效配置: ```bash source ~/.bashrc # 或 source /etc/profile ``` 3. **验证安装** ```bash node -v # 输出v18.xx.x npm -v # 输出对应版本 ``` --- #### 三、使用nvm管理版本(推荐) 1. **安装nvm** ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash ``` 2. **安装Node.js v18** ```bash nvm install 18 nvm use 18 ``` --- #### 四、常见问题解决 1. **Python依赖报错** 安装`npm`包时若提示Python相关错误(如`node-gyp`编译失败),需安装Python及构建工具: ```bash sudo apt install python3 make g++ # Debian/Ubuntu sudo yum install python3 make gcc-c++ # CentOS/RHEL ``` 配置Python默认版本: ```bash npm config set python /usr/bin/python3 # 指定Python3路径[^4] ``` 2. **镜像加速** 使用淘宝镜像加速`npm`下载: ```bash npm config set registry https://registry.npmmirror.com ``` 3. **权限问题** 避免全局安装时使用`sudo`,可通过以下方式修复权限: ```bash mkdir ~/.npm-global npm config set prefix ~/.npm-global export PATH=~/.npm-global/bin:$PATH # 添加至.bashrc ``` --- #### 五、应用场景与特性 1. **新特性** - V8引擎升级至10.x,支持ES2022语法 - 实验性支持`fetch` API(无需第三方库) - 改进的ES模块加载性能 2. **典型应用** - 后端服务开发(Express.js、NestJS) - 前端构建工具链(Webpack、Vite) - 命令行工具开发 --- #### 六、引用与扩展阅读 - 官方文档:Node.js Buffer模块[^1] - 版本兼容性:glibc版本要求 - 故障排查:Python依赖问题 ---
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值