242 lines
7.3 KiB
Markdown
242 lines
7.3 KiB
Markdown
---
|
||
title: Debian 12 安装nodejs
|
||
description: 在Debian 12 中安装nodejs
|
||
date: 2025-05-25
|
||
img: https://lijue-me.oss-cn-chengdu.aliyuncs.com/20250618160517581.png
|
||
navigation:
|
||
icon: simple-icons:debian
|
||
---
|
||
### **方法 1:使用 Debian 官方仓库(简单但不一定最新)**
|
||
```bash
|
||
# 更新软件包列表
|
||
sudo apt update
|
||
|
||
# 安装 Node.js 和 npm
|
||
sudo apt install -y nodejs npm
|
||
|
||
# 验证安装
|
||
node -v
|
||
npm -v
|
||
```
|
||
|
||
**特点**:
|
||
- 安装最简单快捷
|
||
- 版本可能较旧(Debian 12 默认提供 Node.js 18.x)
|
||
- 适合不需要最新版本的用户
|
||
|
||
---
|
||
|
||
### **方法2:使用volta安装**
|
||
```bash
|
||
# 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:手动下载二进制包(灵活选择版本)**
|
||
[官网](https://nodejs.org/)
|
||
|
||
```bash
|
||
# 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**
|
||
如果没有配置镜像加速,先配置加速:
|
||
|
||
```bash
|
||
npm config set registry https://registry.npmmirror.com
|
||
```
|
||
|
||
#### **安装 cnpm**
|
||
```bash
|
||
# 全局安装
|
||
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**
|
||
```bash
|
||
# 全局安装
|
||
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**
|
||
```bash
|
||
# 全局安装
|
||
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` 检查内核版本。
|
||
|
||
```bash
|
||
# 全局安装
|
||
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`,可以删除现有的软链接:
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
创建新的软链接:
|
||
|
||
```bash
|
||
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
|
||
```
|
||
|
||
验证安装:
|
||
|
||
```bash
|
||
node -v
|
||
npm -v
|
||
npx -v
|
||
pnpm -v
|
||
yarn -v
|
||
```
|
||
|
||
查看当前配置:
|
||
|
||
```bash
|
||
npm config list --json
|
||
```
|
||
|
||
---
|
||
|
||
### **方法 3:fnm方式安装(不推荐)**
|
||
#### **npm**
|
||
```bash
|
||
# 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**
|
||
```bash
|
||
# Download and install Yarn:
|
||
corepack enable yarn
|
||
# Verify Yarn version:
|
||
yarn -v
|
||
```
|
||
|
||
#### **pnpm**
|
||
```bash
|
||
# Download and install pnpm:
|
||
corepack enable pnpm
|
||
# Verify pnpm version:
|
||
pnpm -v
|
||
```
|
||
|
||
#### **nodejs包镜像加速**
|
||
```bash
|
||
npm config set registry https://registry.npmmirror.com
|
||
```
|
||
|
||
---
|
||
|
||
### **对比 npm、Yarn、pnpm**
|
||
| 特性 | npm | Yarn (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.json | yarn.lock | yarn.lock + .pnp.cjs | pnpm-lock.yaml |
|
||
| **安全性** | 🔒 一般(依赖可能被篡改) | 🔒 较好(校验严格) | 🔒 最好(离线模式 + 校验) | 🔒 最好(内容可寻址存储) |
|
||
| **Monorepo 支持** | 有限(需配合 Lerna) | 支持 Workspaces | 原生 Workspaces + PnP | 原生 Workspaces + 高效链接 |
|
||
| **磁盘占用** | 高(重复依赖多) | 中(扁平化减少重复) | 低(PnP 无 node_modules) | 极低(全局存储 + 硬链接) |
|
||
| **命令行体验** | 基础功能 | 更友好(进度条、交互提示) | 现代化(插件系统) | 简洁高效 |
|
||
| **兼容性** | 100% 兼容 Node.js | 兼容 npm 生态 | 需适配 PnP(部分库不兼容) | 兼容 npm/Yarn 生态 |
|
||
| **推荐场景** | 简单项目 / Node.js 默认 | 旧项目迁移 / 稳定需求 | 大型 Monorepo / 严格依赖控制 | 高效开发 / 节省磁盘空间 |
|