nvm安装后必须手动source配置文件才能生效,且install仅解压不激活,需显式nvm use切换版本;默认不设default别用sudo装npm全局包,否则破坏nvm隔离机制。

直接用 nvm 安装,别碰系统包管理器装的全局 node——它和 nvm 冲突,后续 node -v 会显示错版本,且无法通过 nvm use 覆盖。
curl 安装脚本后必须手动 source 配置文件
安装命令只是把 nvm.sh 放进 ~/.nvm/,并尝试往 ~/.bashrc 或 ~/.zshrc 里追加初始化代码。但这些改动不会自动生效:
- 运行
echo $SHELL确认 shell 类型(/bin/bash还是/bin/zsh) - 对应执行
source ~/.bashrc或source ~/.zshrc - 如果仍报
command not found: nvm,检查配置文件末尾是否真有[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"这行;没有就手动加 -
nvm --version能输出才说明加载成功
nvm install 后默认不设为当前 shell 的激活版本
执行 nvm install v20.13.1 只是把二进制解压到 ~/.nvm/versions/node/v20.13.1/,并不会自动切换。常见误操作是装完就跑 node -v,结果还是旧版本:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 装完必须显式执行
nvm use v20.13.1才会让当前终端的node指向该版本 - 想让新打开的终端也默认用这个版本,再补一句
nvm alias default v20.13.1 -
nvm ls显示带->的那行才是当前激活版本;没箭头=没生效 - 若项目依赖特定版本,可在根目录放
.nvmrc文件,内容只写v20.13.1,之后进目录时运行nvm use即可自动匹配
别用 sudo 装 nvm 或 npm 全局包来“修复”权限问题
nvm 的设计前提是纯用户态:所有文件在 ~/.nvm 下,无需 sudo。一旦你用 sudo npm install -g 装过东西,极大概率导致:
-
npm命令被系统级安装覆盖,nvm use切换node版本后,npm仍调用旧路径下的二进制 -
npm config get prefix输出/usr/local而不是~/.nvm/versions/node/v20.13.1,说明 npm 没随 node 版本联动 - 正确做法是:确保
which npm输出路径在~/.nvm/versions/node/...下;如果不是,删掉/usr/local/bin/npm和/usr/local/lib/node_modules/npm,再nvm reinstall-packages v20.13.1
最易被忽略的一点:nvm 不管理 npm 的全局模块,每次 nvm use 切换版本后,npm list -g 是空的——你得重新 npm install -g 一遍,或者用 nvm reinstall-packages 批量恢复。这不像 Python 的 virtualenv 自动隔离,它是显式、分层的控制。

















