在 Debian 上“nodejs 冲突”通常出现在以下几种常见场景,我按最常见到少见给你对应解法。
Debian 用 apt 装了 /usr/bin/node(或 nodejs),你又用:
导致:
command -v node
/usr/bin/node
但版本不对 / 冲突
# 1. 卸载 apt 的 nodejs
sudo apt remove nodejs npm
sudo apt autoremove
# 2. 安装 nvm
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
source ~/.bashrc
# 3. 安装 node
nvm install 20
nvm use 20
nvm alias default 20
✅ 这是最干净、最不冲突的方式
node 和 nodejs 命令不一致Debian 老版本里:
node 是 Ham Radio 软件nodejs导致 node 命令不存在
sudo apt install nodejs
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
或(更推荐):
nvm use 20
Debian 12 自带 node 18
但你需要 20 / 22
用 NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt install -y nodejs
直接用 nvm(见第一节)
报类似:
EACCES: permission denied
/usr/lib/node_modules
mkdir ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
例如:
node-sass 编译失败nvm use 20
rm -rf node_modules package-lock.json
npm install
which node
which nodejs
node -v
npm -v
apt list --installed | grep node
如果你能告诉我:
cat /etc/os-release)我可以直接给你精确的一条命令解法。