在 Debian 中“缺 Node.js”这个问题,通常并不是指系统里完全不能装 Node.js,而是说:
Debian 官方仓库里默认不提供较新版本的 Node.js,甚至有些版本根本不叫 nodejs 或版本很老。
原因主要有以下几点:
Debian 以稳定、安全、可预测著称,而不是“新”。
例如:
apt show nodejs
在 Debian 11 中可能是 Node 12,在 Debian 12 中是 Node 18。
早期 Linux 里有一个命令叫:
node
它是 Amateur Packet Radio 的工具(AX.25)。
为了避免冲突,Debian 曾把 Node.js 的可执行文件命名为:
nodejs
而不是:
node
这导致很多脚本、教程、工具(如 nvm、npm 脚本)默认找 node 却找不到。
✅ 现在新版本中通常已经软链了 node -> nodejs,但老系统仍有此问题。
Node.js 官方明确建议:
不要用 apt / yum 装 Node.js
原因:
官方推荐方式:
Debian 的定位是:
而 Node.js 更偏向:
所以 Debian 默认不会“为你准备好最新 Node.js”。
apt install nodejs
node -v # 报错
解决:
ln -s /usr/bin/nodejs /usr/bin/node
Debian 里:
apt install nodejs
不一定包含 npm
需要额外:
apt install npm
npm install
# 报错:需要 Node 18+
解决:用 NodeSource 或 nvm
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install -y nodejs
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
nvm install 20
Debian 不是“缺 Node.js”,而是“故意不给你新 Node.js”。
如果你愿意,我可以: