当前位置: 首页 > news >正文

不同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
http://www.sczhlp.com/news/646.html

相关文章:

  • 虚化引擎游戏解包工具
  • hyper-v安装manjaro虚拟机
  • spring-data-JPA代码审计
  • 小作业 7(5 道不等式练习题)
  • CF2128F Strict Triangle
  • Dubbo
  • AWS上实现超大规模模型训练的近线性扩展
  • 现代Web服务器性能革命:我的Rust框架探索之旅(6906)
  • Hyperlane性能调优秘籍:从毫秒级响应到百万QPS的优化之路(0548)
  • 实时通信协议的Rust实现(4131)
  • Rust生态系统在Web开发中的优势(9336)
  • TCP连接优化的实战经验(3008)
  • 高并发处理的Rust实现方案(6871)
  • 内存使用效率的终极对决:零拷贝技术的实战应用(0581)
  • 实时通信技术深度对比:WebSocket与SSE的最佳实践(4367)
  • Hyperlane框架的高级特性深度解析:从零拷贝到宏系统的完美融合(8284)
  • WebSocket服务端的高效处理(2177)
  • 跨平台Web服务开发的新选择(5907)
  • 异步编程在Web开发中的应用(9589)
  • 从零开始构建高性能实时聊天系统:Hyperlane框架实战指南(3242)
  • 高性能路由系统的设计与实现(4242)
  • 现代Web框架的性能基准测试(8242)
  • HTTP响应处理的灵活设计(2278)
  • HTTP请求处理的高效封装(6235)
  • Web服务器性能大比拼:谁才是真正的速度之王(0372)
  • 中间件架构设计模式:从Express到现代Rust框架的演进(4232)
  • 中间件架构的优雅实现(8032)
  • Rust异步Web框架性能突破之路(1499)
  • 实战项目:文件分块上传系统(5527)
  • 实时通信协议的Rust实现(9068)