Debian 12 安装nodejs

在Debian 12 中安装nodejs
2025-05-25

方法 1:使用 Debian 官方仓库(简单但不一定最新)

# 更新软件包列表
sudo apt update

# 安装 Node.js 和 npm
sudo apt install -y nodejs npm

# 验证安装
node -v
npm -v

特点

  • 安装最简单快捷
  • 版本可能较旧(Debian 12 默认提供 Node.js 18.x)
  • 适合不需要最新版本的用户

方法2:使用volta安装

# On most Unix systems including macOS, you can install with a single command:
curl https://get.volta.sh | bash

# Download and install Node.js:
volta install node@22

# Verify the Node.js version:
node -v # Should print "v22.16.0".

# Verify npm version:
npm -v # Should print "10.9.2".

# Download and install pnpm:
volta install pnpm

# Verify pnpm version:
pnpm -v # Should print "10.12.1".

方法 3:手动下载二进制包(灵活选择版本)

官网

# 1. 下载指定版本(示例为 v20.x)
wget https://nodejs.org/dist/v22.16.0/node-v22.16.0-linux-x64.tar.xz
# 创建目录
sudo mkdir -p /usr/local/lib/nodejs
# 解压
sudo tar -xJf node-v22.16.0-linux-x64.tar.xz -C /usr/local/lib/nodejs

# 创建对应的软链接
# 创建 node 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/node /usr/bin/node
# 创建 npm 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/npm /usr/bin/npm
# 创建 npx 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/npx /usr/bin/npx

# 在~/.bashrc文件末尾中加入nodejs到PATH环境变量中
export PATH=/usr/local/lib/node-v22.16.0-linux-x64/bin:$PATH
# 重载 ~/.profile
source ~/.bashrc

# 4. 验证安装
node -v
npm -v

特点

  • 可自由选择任何版本
  • 不依赖系统仓库
  • 需要手动更新版本

安装 pnpm、yarn、bun、cpnm

如果没有配置镜像加速,先配置加速:
npm config set registry https://registry.npmmirror.com

安装 cnpm

# 全局安装
sudo npm install -g cnpm --registry=https://registry.npmmirror.com
# 查看安装情况
ls -la /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin
# 创建 cnpm 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/cnpm /usr/bin/cnpm
# 查看版本
cnpm -v

安装 pnpm

# 全局安装
sudo npm install -g pnpm
# 查看安装情况
ls -la /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin
# 创建 pnpm 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/npx /usr/bin/pnpm
# 查看版本
pnpm -v

安装 yarn

# 全局安装
sudo npm install -g yarn
# 查看
ls -la /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin
# 创建 yarn 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/npx /usr/bin/yarn
# 查看版本
yarn -v

安装 bun

Linux用户-安装Bun需要解压缩包。使用 `sudo apt install unzip` 安装解压包。强烈建议使用5.6或更高版本的内核,但最低版本为5.1。使用 `uname -r` 检查内核版本。
# 全局安装
sudo cnpm install -g bun
# 查看
ls -la /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin
# 创建 bun 软链
sudo ln -s /usr/local/lib/nodejs/node-v22.16.0-linux-x64/bin/bun /usr/bin/bun
# 查看版本
bun -v

切换版本

如需切换版本,例如 v18.20.7,可以删除现有的软链接:

sudo rm /usr/bin/node
sudo rm /usr/bin/npm
sudo rm /usr/bin/npx
sudo rm /usr/bin/pnpm
sudo rm /usr/bin/yarn
sudo rm /usr/bin/bun
sudo rm /usr/bin/cnpm

创建新的软链接:

sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/npm /usr/bin/npm
sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/npx /usr/bin/npx
sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/pnpm /usr/bin/pnpm
sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/bun  /usr/bin/bun
sudo ln -s /usr/local/lib/nodejs/node-v18.20.7-linux-x64/bin/cnpm /usr/bin/cnpm

验证安装:

node -v
npm -v
npx -v
pnpm -v
yarn -v

查看当前配置:

npm config list --json

方法 3:fnm方式安装(不推荐)

npm

# Download and install fnm:
curl -o- https://fnm.vercel.app/install | bash

# Download and install Node.js:
fnm install 22

# Verify the Node.js version:
node -v # Should print "v22.16.0".

# Verify npm version:
npm -v # Should print "10.9.2".

yarn

# Download and install Yarn:
corepack enable yarn
# Verify Yarn version:
yarn -v

pnpm

# Download and install pnpm:
corepack enable pnpm
# Verify pnpm version:
pnpm -v

nodejs包镜像加速

npm config set registry https://registry.npmmirror.com

对比 npm、Yarn、pnpm

特性npmYarn (v1/Yarn Classic)Yarn Berry (v2+)pnpm
发布时间2010 (Node.js 自带)2016 (Facebook 推出)2020 (Yarn 2.0 重大更新)2017 (独立发展)
安装速度⏳ 慢(线性安装)🚀 较快(并行下载)🚀 快(改进缓存)⚡ 极快(硬链接 + 符号链接)
依赖管理node_modules 嵌套结构node_modules 扁平化Plug’n’Play (PnP) 无 node_modules硬链接 + 全局存储(节省空间)
缓存机制有缓存,但效率一般缓存优化较好增量缓存 + 零安装(Zero-Installs)全局存储,依赖可复用
锁文件package-lock.jsonyarn.lockyarn.lock + .pnp.cjspnpm-lock.yaml
安全性🔒 一般(依赖可能被篡改)🔒 较好(校验严格)🔒 最好(离线模式 + 校验)🔒 最好(内容可寻址存储)
Monorepo 支持有限(需配合 Lerna)支持 Workspaces原生 Workspaces + PnP原生 Workspaces + 高效链接
磁盘占用高(重复依赖多)中(扁平化减少重复)低(PnP 无 node_modules)极低(全局存储 + 硬链接)
命令行体验基础功能更友好(进度条、交互提示)现代化(插件系统)简洁高效
兼容性100% 兼容 Node.js兼容 npm 生态需适配 PnP(部分库不兼容)兼容 npm/Yarn 生态
推荐场景简单项目 / Node.js 默认旧项目迁移 / 稳定需求大型 Monorepo / 严格依赖控制高效开发 / 节省磁盘空间