Linux下装nvm前必须禁用系统自带node/npm,否则nvm use后node -v仍显示旧版本;需用which node确认路径、mv重命名系统命令、清空~/.npm等残留,并确保shell配置生效。

Linux 下装 nvm 不需要卸载旧 Node,但必须关掉系统自带的 node 和 npm 命令冲突——否则 nvm use 后执行 node -v 仍显示旧版本,这是最常被忽略的坑。
安装前先清理系统级 node 冲突
很多 Linux 发行版(如 Ubuntu/Debian)用 apt install nodejs 装过 Node,它会把 node 命令软链到 /usr/bin/node,而 nvm 管理的 node 在 ~/.nvm/versions/node/ 下。两者共存时,PATH 顺序不对就会优先走系统命令。
- 运行
which node和which npm,如果输出在/usr/bin/或/usr/local/bin/,说明有冲突 - 临时禁用:运行
sudo mv /usr/bin/node /usr/bin/node-system(不删,留作回滚) - 检查是否还有残留:运行
dpkg -l | grep nodejs(Ubuntu/Debian)或rpm -qa | grep node(CentOS/RHEL),如有则sudo apt remove nodejs npm或sudo yum remove nodejs npm - 别忘了清空
~/.npm和~/.node-gyp,否则某些 native 模块编译会复用旧头文件
用 curl 安装 nvm(推荐方式)
官方脚本安装最稳定,git clone 或包管理器(如 brew)在 Linux 上反而容易出路径或权限问题。
基于三引擎设计,从微信文章、新闻和博客网页提取干净内容,支持标题作者日期元数据,多格式和批量处理。
- 执行:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash(v0.39.7 是当前稳定版,2026 年仍广泛兼容) - 安装后会提示你把三行代码加进 shell 配置文件(
~/.bashrc或~/.zshrc),**必须手动 source 一次**:source ~/.bashrc - 验证:
nvm --version应输出版本号;command -v nvm应返回函数定义,不是可执行文件路径 - 如果报
nvm: command not found,大概率是没 source 或 shell 配置文件没生效(比如你用 zsh 却只改了 .bashrc)
nvm install 选版本要注意 LTS 还是 latest
nvm install 默认装的是最新稳定版(latest),但多数生产项目依赖 LTS 版本(如 20.18.0)。直接写数字可能失败,因为不是所有版本都支持你的 CPU 架构(比如 ARM64 的 arm64 二进制未必同步发布)。
- 先查可用列表:
nvm list-remote(注意是list-remote,不是list available——后者是 Windowsnvm-windows的写法) - 装 LTS 最新版:
nvm install --lts(等价于nvm install lts/hydrogen) - 装指定 LTS 名称:
nvm install lts/gallium(Node 18.x)或nvm install lts/hydrogen(Node 20.x) - 装 latest:
nvm install node(注意不是nvm install latest) - 装完自动带对应
npm,不用单独装;但nvm use后,npm config get prefix显示的是~/.nvm/versions/node/<version>/lib/node_modules,和系统全局隔离
nvm use 不生效?检查 SHELL 和终端会话
最典型的“用了 nvm use 20.18.0,但新打开的终端还是旧版本”,根本原因不是 nvm 本身,而是 shell 初始化机制。
-
nvm use只影响当前 shell 会话,**不会写入环境变量永久生效** - 想每次打开终端都用某版本,得设 alias:
nvm alias default 20.18.0,然后新开终端 - 如果用 VS Code 终端,要关掉再重开,或在设置里勾选
terminal.integrated.env.linux并确保 shell 配置已加载 - 某些桌面环境(GNOME/KDE)启动终端时不会读
.bashrc,而是读.profile,这时要把 nvm 初始化代码也复制进.profile - 执行
nvm current始终输出system?说明当前 shell 没被 nvm 管理——检查which node是否指向~/.nvm/下路径
真正麻烦的不是装不上,而是装上了却不知道为什么 node 命令还在走系统路径;多花 30 秒 run which node 和 nvm current,比反复重装快得多。

















