在 CentOS 上配置 Node.js 失败,通常不是“某一条命令错了”,而是环境、权限、版本源或依赖这几类问题。下面按最常见原因 → 排查方法 → 解决方式给你一个清单。
CentOS 自带 repo 里的 nodejs 非常老(v6 / v8):
node -v
# v6.x 或 v8.x
✅ 解决(推荐方式):
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -
yum install -y nodejs
或
dnf install -y nodejs # CentOS 8+
报错示例:
No package nodejs available
✅ 解决:
yum install -y epel-release
yum makecache
报错:
EACCES: permission denied
✅ 正确做法(不要 sudo npm):
npm config set prefix ~/.npm-global
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
CentOS 默认开启 SELinux,可能阻止 node 运行。
检查:
getenforce
✅ 临时关闭测试:
setenforce 0
✅ 或配置策略(生产环境)
Node 18+ 需要:
glibc >= 2.28
CentOS 6 / 7 不满足。
✅ 解决:
firewall-cmd --list-ports
✅ 开放端口:
firewall-cmd --add-port=3000/tcp --permanent
firewall-cmd --reload
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -
yum install -y nodejs
node -v
npm -v
dnf module install nodejs:18
你可以直接把报错信息贴出来,或者告诉我:
cat /etc/redhat-release)我可以直接告诉你是哪一步、为什么、怎么改。