You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04.4 LTS下nvm安装Node后重启终端版本异常求助

Node.js版本重启终端后自动切换为nightly版本的问题排查与解决

问题背景

在Ubuntu 22.04.4 LTS系统中,按官方步骤安装nvm及Node.js 21版本:

# 安装nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 下载并安装Node.js(可能需要重启终端)
nvm install 21
# 验证Node.js版本是否正确
node -v # 预期输出 `v21.7.3`
# 验证NPM版本是否正确
npm -v # 预期输出 `10.5.0`

初始验证时Node和npm版本均符合预期,但关闭并重启终端后,Node版本变为v23.0.0-nightly2024071586415e4688,同时npm弹出警告:

npm warn cli npm v10.8.2 does not support Node.js v23.0.0-nightly2024071586415e4688. This version of npm supports the following node versions: `^18.17.0 || >=20.5.0`. You can find the latest version at https://nodejs.org/.
10.8.2

多次重复安装流程、重启电脑并尝试不同Node版本,问题仍未解决。

原因分析

  • 系统全局Node.js残留:系统可能预先通过apt等包管理器安装过Node.js,nvm未完全接管全局环境变量,重启终端后默认调用了系统自带或之前手动安装的nightly版本。
  • nvm环境变量未持久化:nvm的初始化脚本未正确添加到shell配置文件(如~/.bashrc、~/.zshrc),导致重启终端后nvm未加载,无法管理Node版本。
  • 默认版本配置错误:之前可能设置过nvm默认版本为nightly版本,或存在其他Node版本管理工具(如n、fnm)与nvm冲突,覆盖了版本设置。

解决方法

1. 清理系统全局Node.js

执行以下命令卸载系统中可能存在的Node.js残留:

sudo apt remove --purge nodejs npm
sudo apt autoremove
sudo rm -rf /usr/local/bin/node /usr/local/bin/npm /usr/local/lib/node_modules

2. 修复nvm环境变量配置

  • 检查对应shell的配置文件:bash用户查看~/.bashrc,zsh用户查看~/.zshrc,确认是否包含nvm初始化代码:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # 加载nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # 加载nvm自动补全
  • 如果没有,手动添加上述代码到配置文件,再执行source ~/.bashrc(或source ~/.zshrc)使配置生效。

3. 设置nvm默认版本为Node.js 21

执行以下命令将Node.js 21设为终端默认启动版本:

nvm use 21
nvm alias default 21

4. 清理冲突的版本管理工具

如果之前使用过其他Node版本管理工具(如n、fnm),需彻底卸载并清理相关环境变量,避免与nvm冲突。

完成以上操作后,重启终端,执行node -v和npm -v验证版本是否恢复为预期的v21.7.3和10.5.0。

内容的提问来源于stack exchange,提问作者Luca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:39:57