在腾讯云服务器(CVM)上选择 Debian 镜像(如 Debian 12/11)后,推荐使用 NodeSource 官方仓库安装 Node.js(稳定、版本可控、支持 LTS 和最新版),不建议用 apt install nodejs(系统源版本通常较旧且无 npm 或版本过低)。
以下是详细、安全、可复现的安装步骤(以 Debian 12 (Bookworm) 为例,兼容 Debian 11):
✅ 推荐方式:使用 NodeSource 安装(推荐 LTS 版本 v20.x)
# 1. 更新系统包索引
sudo apt update
# 2. 安装基础依赖(确保 curl 和 ca-certificates 可用)
sudo apt install -y curl gnupg2 software-properties-common
# 3. 添加 NodeSource APT 仓库(安装 Node.js v20.x LTS)
# 👉 替换为最新 LTS 地址:https://github.com/nodesource/distributions#debinstall
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
# ⚠️ 注意:若需最新稳定版(非 LTS),改用:
# curl -fsSL https://deb.nodesource.com/setup_current.x | sudo -E bash -
# (但生产环境强烈建议用 LTS)
# 4. 安装 Node.js 和 npm
sudo apt install -y nodejs
# 5. 验证安装
node --version # 应输出 v20.x.x
npm --version # 应输出 10.x.x(v20 自带 npm)
✅ 优势:自动配置
node命令(无需nodejs别名)、包含npm、支持npx,且后续sudo apt update && sudo apt upgrade可一键升级。
🔍 补充验证与常用配置
# 查看安装路径(确认是否为 NodeSource 提供的二进制)
which node # /usr/bin/node
dpkg -l | grep nodejs # 查看已安装的 nodejs 包(来自 nodesource)
# 检查 npm 全局安装目录(避免权限问题)
npm config get prefix # 默认为 /usr/local(需 sudo 权限安装全局包)
# ✅ 生产建议:改用 nvm 或配置 npm 全局目录到用户目录(见下方可选优化)
# 可选:升级 npm 到最新稳定版
sudo npm install -g npm@latest
🛑 不推荐的方式(说明原因)
| 方法 | 问题 |
|---|---|
sudo apt install nodejs npm |
Debian 官方源中 nodejs 版本极旧(如 Debian 12 默认是 v18.19,但无 npm;Debian 11 更旧),且 npm 包常缺失或版本不匹配 |
手动下载 .tar.xz 编译安装 |
复杂、无包管理、升级困难、易出错 |
使用 nvm(Node Version Manager) |
✅ 适合开发多版本切换,但不推荐用于生产服务器(因需用户级 Shell 初始化,systemd 服务可能无法识别 node 命令) |
💡 若你确需
nvm(如开发测试),请在用户家目录安装,并确保服务脚本显式指定node路径(如/home/ubuntu/.nvm/versions/node/v20.12.2/bin/node)。
🚀 生产环境小贴士
-
✅ 设置时区和时间同步(避免证书/日志问题):
sudo timedatectl set-timezone Asia/Shanghai sudo apt install -y chrony && sudo systemctl enable --now chrony -
✅ 创建非 root 用户运行 Node 应用(安全最佳实践):
sudo adduser myapp sudo usermod -aG sudo myapp # 如需临时 sudo(可选) sudo su - myapp # 然后在该用户下部署应用 -
✅ 使用 PM2 管理进程(守护、重启、日志):
sudo npm install -g pm2 pm2 start app.js --name "my-node-app" pm2 startup # 生成开机自启命令(按提示执行) pm2 save
✅ 完成!你现在已在腾讯云 Debian 服务器上成功安装了现代、受支持的 Node.js LTS 版本。
需要我帮你:
- 写一个完整的部署脚本(含 PM2 + Nginx 反向X_X)?
- 配置 HTTPS(Let’s Encrypt)?
- 或针对特定 Node.js 版本(如 v18.x / v20.x / v22.x)提供对应命令?
欢迎随时告诉我 👇
CLOUD技术博