nvm是linux上安装node.js最新lts版最稳妥方式,因其能实时拉取nodejs.org官方lts列表(如v20.18.0 iron)、一键安装、自动设默认且避免系统路径污染;而apt/dnf安装版本滞后且无法切换,手动安装需自行维护path与升级。

nvm 是目前 Linux 上装 Node.js 最新稳定版(即 LTS)最靠谱的方式。直接用 apt 或 dnf 装出来的往往滞后一到两个大版本,且无法后续切换;手动下载二进制包又得自己维护 PATH 和升级逻辑。nvm 能自动拉取官网最新 LTS 列表、一键安装、默认设为可用,还避开权限和路径污染问题。
为什么 nvm install --lts 装的才是真·最新稳定版
Node.js 官方 LTS 版本(如 v20.18.0,代号 Iron)每 6 个月发布一次,进入 30 个月长期维护期。nvm 每次执行 nvm ls-remote --lts 都会实时请求 nodejs.org 的版本 API,不是读本地缓存。所以:
• nvm install --lts 确实装的是当前「已发布且标记为 LTS」的最新版(截至 2026 年 6 月是 v20.18.0)
• 不会误装已 EOL 的旧 LTS(比如 v18.x)
• 若想锁定某一代(如 Hydrogen),可明确写 nvm install --lts=hydrogen
nvm 命令找不到?90% 是 shell 配置没生效
安装脚本(curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash)会往 ~/.zshrc 或 ~/.bashrc 写初始化代码,但不会自动 reload 当前终端。
• 先确认你的 shell:echo $SHELL —— 大多数新发行版默认是 /bin/zsh
• 是 zsh 就运行:source ~/.zshrc;是 bash 就运行:source ~/.bashrc
• 验证:nvm --version 输出数字才算成功
• 如果仍报 command not found,打开 ~/.zshrc,检查末尾是否有这两行:export NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
装完 node -v 没变?PATH 被系统 Node 抢先了
nvm use --lts 只是修改当前 shell 的 $PATH,把 ~/.nvm/versions/node/v20.18.0/bin 提到最前。但如果之前用 apt 装过 Node,/usr/bin/node 还在 PATH 里,就会优先命中。
• 快速诊断:which node —— 输出 /usr/bin/node 就是被覆盖了
• 临时修复:export PATH="$HOME/.nvm/versions/node/v20.18.0/bin:$PATH"
• 根治办法:确保 source ~/.zshrc 这行在配置文件里位于所有可能改 PATH 的语句(比如 export PATH=...)之后
• 验证是否真正激活:nvm current 应输出 v20.18.0,nvm ls 中该版本后应有 -> 箭头
别跳过 nvm alias default 这一步
装完不设默认,新开终端里 node 依然不可用,因为 nvm 默认不自动加载任何版本。
• 必须执行:nvm alias default v20.18.0(或 nvm alias default 'lts/*')
• 这会让 nvm 在每次新终端启动时自动 use 该版本
• 注意:default 是 alias 名,不是关键词,可以自定义(如 nvm alias myprod v20.18.0),但只有 default 会被自动触发
• 设完再开个新终端,直接 node -v 就能输出正确版本
国内用户拉取远程版本列表慢或超时,不是 nvm 本身的问题,而是网络直连 nodejs.org 不稳定。这时候别硬等,先试 nvm ls-remote --lts 看是否卡在 DNS 或连接阶段——卡住超过 30 秒基本就是网络问题,需要走镜像或代理,而不是重装 nvm。











