Linux 下 Node.js 安装完全指南:多方法详解与最佳实践

1. 简介:为什么 Linux 是 Node.js 的理想平台?
Linux 作为服务器操作系统的首选,与 Node.js 的事件驱动架构完美契合:

性能优势:Linux 内核的高效 I/O 处理能力
稳定性:Linux 系统的长期稳定性和可靠性
资源效率:更少的系统开销,更高的并发处理能力
开源生态:完善的工具链和社区支持
Linux系统优势
高性能
稳定性
安全性
灵活性
Node.js特性
高并发处理
长期运行服务
安全沙箱
快速部署
2. 安装前准备
2.1 系统要求
CPU:x86_64 或 ARM 架构
内存:至少 512MB RAM(推荐 2GB+)
存储:至少 200MB 可用空间
网络:稳定的互联网连接(下载依赖)
2.2 确认 Linux 发行版
# 检查发行版和版本
cat /etc/os-release

# 检查系统架构
uname -m
lscpu | grep "Architecture"

# 示例输出
# NAME="Ubuntu"
# VERSION="20.04.3 LTS (Focal Fossa)"
# Architecture: x86_64
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
2.3 安装必要工具
# Ubuntu/Debian
sudo apt update
sudo apt install -y curl wget build-essential

# CentOS/RHEL/Fedora
sudo yum update
sudo yum install -y curl wget gcc-c++ make

# openSUSE
sudo zypper refresh
sudo zypper install -y curl wget gcc-c++ make
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
3. Node.js 安装方法详解
3.1 方法一:使用官方仓库(最简单)
适用于 Ubuntu/Debian
# 添加 NodeSource 仓库
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

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

# 验证安装
node -v
npm -v
AI写代码
bash
1
2
3
4
5
6
7
8
9
适用于 CentOS/RHEL/Fedora
# 添加 NodeSource 仓库
curl -fsSL https://rpm.nodesource.com/setup_18.x | sudo bash -

# 安装 Node.js
sudo yum install -y nodejs

# 验证安装
node -v
npm -v
AI写代码
bash
1
2
3
4
5
6
7
8
9
优点:
简单快捷,适合初学者
自动处理依赖关系
包含 npm 包管理器
缺点:
仓库中的版本可能不是最新
需要管理员权限
版本切换不够灵活
3.2 方法二:使用 NodeSource 仓库(推荐)
NodeSource 提供最新版本的 Node.js,支持多个版本选择:

# 查看 Node.js 版本列表
curl -o- https://raw.githubusercontent.com/nodesource/distributions/master/distributions.txt | grep -E '^[^[:space:]]' | cut -f 1 -d ' '

# 安装特定版本(例如 18.x)
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
AI写代码
bash
1
2
3
4
5
6
支持的版本:
LTS(长期支持):18.x (氢)、16.x (镓)
Current(最新):19.x
优点:
获取最新稳定版本
多版本支持
官方维护,安全可靠
缺点:
需要网络连接
仓库切换可能需要额外步骤
3.3 方法三:使用 NVM(Node 版本管理器)
NVM (Node Version Manager) 允许在同一系统上安装和管理多个 Node.js 版本:

# 下载并安装 NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

# 或者使用 wget
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

# 重新加载终端配置
source ~/.bashrc

# 验证 NVM 安装
nvm --version

# 安装最新 LTS 版本
nvm install --lts

# 安装特定版本
nvm install 18.13.0

# 切换使用的 Node.js 版本
nvm use 18.13.0

# 设置默认版本
nvm alias default 18.13.0

# 列出已安装的版本
nvm ls

# 卸载特定版本
nvm uninstall 16.13.0
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
优点:
多版本并行管理
无需管理员权限(用户级安装)
版本切换简单
支持 .nvmrc 文件(项目级版本控制)
缺点:
每个用户需要单独安装
初次设置稍复杂
项目级版本控制:
# 在项目根目录创建 .nvmrc 文件
echo "18.13.0" > .nvmrc

# 进入目录时自动切换版本
# 将以下添加到 ~/.bashrc 或 ~/.zshrc
cdnvm() {
cd "$@";
nvm_path=$(nvm_find_up .nvmrc | tr -d '\n')
if [[ ! $nvm_path = *[^[:space:]]* ]]; then
declare default_version;
default_version=$(nvm version default);
if [[ $default_version == "N/A" ]]; then
nvm install default;
fi
if [[ $(nvm current) != $default_version ]]; then
nvm use default;
fi
elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then
declare nvm_version;
nvm_version=$(< "$nvm_path/.nvmrc");
declare locally_resolved_nvm_version;
locally_resolved_nvm_version=$(nvm version "$nvm_version");
if [[ $locally_resolved_nvm_version == "N/A" ]]; then
nvm install "$nvm_version";
elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then
nvm use "$nvm_version";
fi
fi
}
alias cd='cdnvm'
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
3.4 方法四:使用 Snap 包
适用于支持 Snap 的 Linux 发行版(Ubuntu 18.04+ 等):

# 安装 Node.js LTS 版本
sudo snap install node --classic

# 安装特定版本
sudo snap install node --channel=18/stable --classic

# 切换版本
sudo snap refresh node --channel=19/stable

# 验证安装
node -v
npm -v
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
优点:
自动更新
沙箱环境,安全性高
版本切换简单
缺点:
不是所有发行版都支持 Snap
snap 包可能比原生安装稍慢
3.5 方法五:使用二进制包(手动安装)
适合需要完全控制安装位置和配置的场景:

# 下载二进制包
wget https://nodejs.org/dist/v18.13.0/node-v18.13.0-linux-x64.tar.xz

# 解压
tar -xvf node-v18.13.0-linux-x64.tar.xz

# 移动到合适的目录
sudo mv node-v18.13.0-linux-x64 /usr/local/node

# 设置环境变量
echo 'export NODE_HOME=/usr/local/node' >> ~/.bashrc
echo 'export PATH=$NODE_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 创建符号链接
sudo ln -s /usr/local/node/bin/node /usr/bin/node
sudo ln -s /usr/local/node/bin/npm /usr/bin/npm

# 验证安装
node -v
npm -v
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
优点:
完全控制安装位置
不需要网络安装
可以离线部署
缺点:
需要手动更新
依赖关系需要手动处理
4. 验证 Node.js 安装
4.1 基本验证
# 检查 Node.js 版本
node -v
# v18.13.0

# 检查 npm 版本
npm -v
# 8.19.3

# 检查 Node.js 安装路径
which node
# /usr/bin/node

# 检查 npm 安装路径
which npm
# /usr/bin/npm
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
4.2 功能验证
# 创建测试文件
echo 'console.log("Node.js is running:", process.version);' > test.js

# 运行测试文件
node test.js
# Node.js is running: v18.13.0
AI写代码
bash
1
2
3
4
5
6
4.3 npm 功能验证
# 初始化 npm 项目
mkdir test-npm && cd test-npm
npm init -y

# 安装一个包
npm install express

# 检查安装的包
ls node_modules/
AI写代码
bash
1
2
3
4
5
6
7
8
9
5. NPM 配置优化
5.1 全局配置
# 设置全局安装路径
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'

# 添加到 PATH
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 验证配置
npm config get prefix
# /home/user/.npm-global
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
5.2 镜像配置(中国用户)
# 设置淘宝镜像
npm config set registry https://registry.npmmirror.com

# 验证配置
npm config get registry
# https://registry.npmmirror.com

# 临时使用官方镜像
npm install express --registry https://registry.npmjs.org
AI写代码
bash
1
2
3
4
5
6
7
8
9
5.3 权限配置
# 避免使用 sudo 安装全局包
# 方法一:使用 npm 配置
npm config set prefix ~/.npm-global

# 方法二:使用 npx
npx create-react-app my-app

# 方法三:修改 npm 默认目录权限
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
AI写代码
bash
1
2
3
4
5
6
7
8
9
6. Node.js 版本管理
6.1 使用 NVM 管理版本
# 列出可用的远程版本
nvm ls-remote

# 列出已安装的本地版本
nvm ls

# 安装最新 LTS 版本
nvm install --lts

# 安装特定版本
nvm install 18.13.0

# 切换版本
nvm use 18.13.0

# 设置默认版本
nvm alias default 18.13.0

# 运行特定版本的单个命令
nvm exec 18.13.0 node app.js
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
6.2 使用 N 管理版本
# 安装 n
npm install -g n

# 安装最新 LTS 版本
n lts

# 安装最新版本
n latest

# 安装特定版本
n 18.13.0

# 切换版本
n use 18.13.0

# 列出已安装版本
n ls

# 移除版本
n rm 16.13.0
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
6.3 版本选择建议
推荐
推荐
推荐
稳定
新特性
兼容性
选择Node.js版本
生产环境
开发环境
测试环境
LTS版本
LTS或最新版本
多版本测试
18.x
19.x
16.x/18.x
7. 卸载 Node.js
7.1 从官方仓库卸载
# Ubuntu/Debian
sudo apt-get remove nodejs
sudo apt-get autoremove

# CentOS/RHEL/Fedora
sudo yum remove nodejs
sudo yum autoremove
AI写代码
bash
1
2
3
4
5
6
7
7.2 从 NodeSource 卸载
# Ubuntu/Debian
sudo apt-get purge nodejs
sudo rm -r /etc/apt/sources.list.d/nodesource.list
sudo apt-get autoremove

# CentOS/RHEL/Fedora
sudo yum remove nodejs
sudo rm /etc/yum.repos.d/nodesource-el*.repo
sudo yum autoremove
AI写代码
bash
1
2
3
4
5
6
7
8
9
7.3 从 NVM 卸载
# 卸载特定版本
nvm uninstall 18.13.0

# 完全卸载 NVM
rm -rf ~/.nvm
# 然后编辑 ~/.bashrc 或 ~/.zshrc,删除 NVM 相关配置
AI写代码
bash
1
2
3
4
5
6
7.4 从 Snap 卸载
sudo snap remove node
AI写代码
bash
1
7.5 手动安装的卸载
# 删除二进制文件和符号链接
sudo rm -rf /usr/local/node
sudo rm /usr/bin/node
sudo rm /usr/bin/npm

# 删除环境变量
# 编辑 ~/.bashrc 或 ~/.profile,删除相关配置
AI写代码
bash
1
2
3
4
5
6
7
8. 常见问题与解决方案
8.1 权限问题
# 问题:npm install -g 时出现 EACCES 错误
# 解决方案1:配置 npm 使用不同目录
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

# 解决方案2:修改 npm 默认目录权限
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
AI写代码
bash
1
2
3
4
5
6
7
8
9
8.2 网络问题
# 问题:连接 NPM 仓库超时
# 解决方案1:更换镜像源
npm config set registry https://registry.npmmirror.com

# 解决方案2:设置代理
npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

# 解决方案3:使用 VPN 或其他网络工具
AI写代码
bash
1
2
3
4
5
6
7
8
9
8.3 版本冲突
# 问题:系统中存在多个 Node.js 版本
# 解决方案1:使用 NVM 管理
nvm ls
nvm use 18.13.0

# 解决方案2:更新 PATH 优先级
echo 'export PATH="/path/to/preferred/node/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
AI写代码
bash
1
2
3
4
5
6
7
8
8.4 缺少依赖
# 问题:Node.js 运行时提示缺少共享库
# 解决方案:安装构建工具和依赖
# Ubuntu/Debian
sudo apt-get install -y build-essential

# CentOS/RHEL/Fedora
sudo yum groupinstall -y "Development Tools"
sudo yum install -y python3
AI写代码
bash
1
2
3
4
5
6
7
8
9. 生产环境最佳实践
9.1 安全配置
# 使用特定用户运行 Node.js 应用
sudo useradd -m -s /bin/bash nodeuser
sudo su - nodeuser

# 配置防火墙
sudo ufw allow 3000/tcp # 开放应用端口
sudo ufw allow 22/tcp # 开放 SSH 端口
sudo ufw enable
AI写代码
bash
1
2
3
4
5
6
7
8
9.2 性能优化
# 提高文件描述符限制
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf

# 调整内核参数
echo 'net.core.somaxconn = 65536' >> /etc/sysctl.conf
echo 'net.ipv4.tcp_max_syn_backlog = 65536' >> /etc/sysctl.conf
sysctl -p
AI写代码
bash
1
2
3
4
5
6
7
8
9.3 进程管理
# 安装 PM2 进程管理器
npm install -g pm2

# 启动应用
pm2 start app.js

# 设置开机自启
pm2 startup
pm2 save

# 监控应用
pm2 monit
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
9.4 日志管理
# 使用 logrotate 管理 Node.js 日志
sudo nano /etc/logrotate.d/nodejs

# 添加以下内容
/home/nodeuser/app/logs/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 nodeuser nodeuser
}
AI写代码
bash

1
2
3
4
5
6
7
8
9
10
11
12
13
10. 总结与选择建议
10.1 安装方法对比
安装方法 适用场景 易用性 灵活性 管理便捷性
官方仓库 快速部署,测试环境 ⭐⭐⭐⭐⭐ ⭐⭐ ⭐⭐
NodeSource 生产环境,稳定版本 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐
NVM 开发环境,多版本管理 ⭐⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Snap 容器化,简化管理 ⭐⭐⭐⭐ ⭐⭐⭐ ⭐⭐⭐⭐
二进制包 离线环境,定制安装 ⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐
10.2 选择建议
AI写代码
mermaid

1
2
3
4
5
6
7
8
9
10
11
12
13
14
10.3 后续步骤
学习 Node.js 基础:掌握事件循环、异步编程
探索 Express/Koa:了解 Web 框架
数据库集成:连接 MongoDB、MySQL 等
部署实践:使用 PM2、Docker 等
性能优化:掌握集群、缓存等技巧
最终建议:对于大多数用户,我们推荐使用 NVM 管理开发环境中的 Node.js 版本,使用 NodeSource 仓库 安装生产环境的 Node.js。这两种方法结合使用,可以提供最大的灵活性和稳定性,满足各种场景的需求。
————————————————
版权声明:本文为CSDN博主「2501_93104808」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/2501_93104808/article/details/153421284

阅读剩余
THE END