Files
markdown/blog/1.技术栈/995.Debian 12 安装nodejs.md
2025-08-08 10:01:03 +08:00

242 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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
```
---
### **方法 3fnm方式安装(不推荐)**
#### **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 扁平化 | PlugnPlay (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 / 严格依赖控制 | 高效开发 / 节省磁盘空间 |