不同Linux发行版Node安装指南

1. 使用包管理器安装

1.1 CentOS/RHEL

EPEL仓库方式(较旧版本)

复制代码
# 安装EPEL仓库
sudo yum install epel-release -y
​
# 安装Node.js
sudo yum install nodejs -y
​
# 验证安装
node -v
​
# 完全卸载
sudo yum remove nodejs npm -y
sudo yum clean all

NodeSource仓库方式(推荐)

复制代码
# 添加NodeSource仓库(以Node.js 20.x为例)
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
​
# 安装Node.js
sudo yum install -y nodejs
​
# 验证安装
node -v
npm -v
​
# 完全卸载
sudo yum remove -y nodejs
sudo rm -rf /etc/yum.repos.d/nodesource*.repo
sudo yum clean all
​
# 删除可能的残留文件
sudo rm -rf /usr/lib/node_modules
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf ~/.npm

1.2 Ubuntu/Debian

复制代码
# 添加NodeSource仓库
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
​
# 安装Node.js
sudo apt-get install -y nodejs
​
# 验证安装
node -v
npm -v
​
# 完全卸载
sudo apt-get purge -y nodejs
sudo apt-get autoremove -y
sudo rm -rf /etc/apt/sources.list.d/nodesource.list
sudo apt-get update
​
# 删除残留文件
sudo rm -rf /usr/lib/node_modules
sudo rm -rf /usr/local/lib/node_modules
sudo rm -rf ~/.npm

2. 使用NVM安装(推荐)

NVM (Node Version Manager) 允许在同一系统上安装和管理多个Node.js版本。

复制代码
# 安装NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
​
# 加载NVM环境(或重新打开终端)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
​
# 查看可用的Node.js版本
nvm list-remote
​
# 安装特定版本的Node.js
nvm install 20.19.4
​
# 切换Node.js版本
nvm use 16.20.2
​
# 设置默认版本
nvm alias default 20.19.4
​
# 验证安装
node -v
npm -v
​
# 卸载特定版本
nvm uninstall 20.19.4
​
# 完全卸载NVM及所有Node.js版本
rm -rf ~/.nvm
# 从 ~/.bashrc, ~/.zshrc, ~/.profile 等文件中删除NVM相关行
# 例如删除以下类似行:
# export NVM_DIR="$HOME/.nvm"
# [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
# [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

3. 从源代码编译安装

3.1 安装依赖

复制代码
# CentOS/RHEL
sudo yum groupinstall -y "Development Tools"
sudo yum install -y python3 gcc-c++ make openssl-devel
​
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install -y python3 g++ make libssl-dev

3.2 下载源代码

复制代码
# 下载Node.js源代码
wget https://nodejs.org/dist/v20.19.4/node-v20.19.4.tar.gz
​
# 解压源代码
tar -xzf node-v20.19.4.tar.gz
​
# 进入源代码目录
cd node-v20.19.4

3.3 编译安装

复制代码
# 配置编译选项(指定安装目录)
./configure --prefix=/usr/local/node
​
# 编译(使用多核加速)
make -j$(nproc)
​
# 安装
sudo make install
​
# 配置环境变量
echo 'export PATH=/usr/local/node/bin:$PATH' | sudo tee /etc/profile.d/nodejs.sh
source /etc/profile.d/nodejs.sh
​
# 验证安装
node -v
npm -v
​
# 卸载源码编译安装的Node.js
sudo rm -rf /usr/local/node
sudo rm -f /etc/profile.d/nodejs.sh
# 重新登录终端或执行以下命令使环境变量更改生效
source /etc/profile

4. 系统要求与版本选择

4.1 系统要求

Node.js版本 最低系统要求
Node.js 20.x CentOS/RHEL 8+, Ubuntu 20.04+, GCC 10+
Node.js 18.x CentOS/RHEL 7+, Ubuntu 18.04+, GCC 8+
Node.js 16.x CentOS/RHEL 7+, Ubuntu 16.04+, GCC 6+

4.2 版本选择建议

  • 生产环境 :优先选择LTS(长期支持)版本

  • 开发环境 :可以使用最新的Current版本

  • 旧系统 :CentOS 7等旧系统建议使用Node.js 16.x

5. 故障排除

5.1 权限问题

复制代码
# 解决全局包安装权限问题
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc

5.2 依赖问题

  • CentOS 7编译错误 :如果遇到C++编译器版本过旧错误,可使用devtoolset:
复制代码
sudo yum install -y centos-release-scl
sudo yum install -y devtoolset-10-gcc devtoolset-10-gcc-c++
source /opt/rh/devtoolset-10/enable
# 然后再次尝试编译
  • 库版本不兼容 :如果出现GLIBC或GLIBCXX版本错误,建议使用NVM安装兼容的Node.js版本。

5.3 卸载检查

复制代码
# 检查是否有残留Node.js文件
which node
which npm
​
# 查找可能的残留文件
find /usr -name "*node*"
find /usr/local -name "*node*"
find /opt -name "*node*"
​
# 检查全局npm包
ls -la /usr/lib/node_modules
ls -la /usr/local/lib/node_modules
​
# 检查环境变量中的Node.js相关路径
echo $PATH | tr ':' '\n' | grep -i node
​
# 检查配置文件中的Node.js相关设置
grep -r "node" ~/.bashrc ~/.profile /etc/profile /etc/profile.d/

6. 完全卸载Node.js的通用步骤

无论使用何种方式安装,以下步骤可以帮助彻底清除Node.js:

复制代码
# 1. 使用相应的包管理器卸载
# 对于yum/dnf:
sudo yum remove -y nodejs npm
# 对于apt:
sudo apt-get purge -y nodejs npm
​
# 2. 删除NVM(如果使用了NVM)
rm -rf ~/.nvm
# 从配置文件中删除NVM相关行
​
# 3. 删除源码安装的Node.js
sudo rm -rf /usr/local/node
sudo rm -rf /usr/local/bin/node
sudo rm -rf /usr/local/bin/npm
sudo rm -f /etc/profile.d/nodejs.sh
​
# 4. 删除全局npm包和缓存
sudo rm -rf /usr/lib/node_modules
sudo rm -rf /usr/local/lib/node_modules
rm -rf ~/.npm
​
# 5. 删除Node.js配置文件
rm -rf ~/.node-gyp
rm -f ~/.npmrc
​
# 6. 检查并删除其他可能的安装位置
sudo rm -rf /opt/node
​
# 7. 更新系统缓存
# 对于yum/dnf:
sudo yum clean all
# 对于apt:
sudo apt-get update
​
# 8. 检查是否完全删除
which node
which npm