CentOS 6.9服务器node -v显示v4.2.3,yum安装最新Node.js提示无操作
我之前在CentOS 6.x服务器上也碰到过一模一样的问题,大概率是旧版本的Node.js还占据着系统PATH的优先级,或者Nodesource的仓库没有正确生效。咱们一步步来排查解决:
1. 先定位当前Node.js的安装位置
首先得搞清楚系统里现在调用的Node是从哪里来的,执行这两个命令:
which node whereis node
如果输出里出现/usr/local/bin/node这类路径,说明你之前可能是用源码编译或者其他非yum包管理的方式装的旧版本,这种情况下yum的卸载命令是找不到它的,得手动清理。
2. 彻底清理旧版本的Node.js和npm
如果旧版本是通过yum安装的,先执行卸载:
yum remove -y nodejs npm
如果是手动安装的,直接删除对应的文件和依赖目录:
rm -f /usr/local/bin/node /usr/local/bin/npm rm -rf /usr/local/lib/node_modules
然后清理yum缓存,避免残留的旧包信息干扰后续安装:
yum clean all yum makecache
3. 重新配置Nodesource仓库并安装新版本
注意看你的命令提示符是root@server,说明你已经是root用户了,执行setup脚本时不用加sudo,反而可能导致权限问题。重新执行仓库配置脚本:
curl --silent --location https://rpm.nodesource.com/setup_9.x | bash -
执行完后检查仓库配置文件是否正确生成:
cat /etc/yum.repos.d/nodesource-el.repo
确保文件里的baseurl路径包含el/6/x86_64,对应CentOS 6的架构。
然后重新安装Node.js:
yum -y install nodejs
这时候你应该能看到yum正在下载并安装9.x版本的包,而不是提示“无操作”。
4. 验证安装结果
安装完成后,刷新shell的PATH缓存(或者直接新开一个终端),然后执行:
node -v npm -v
如果还是显示旧版本,检查PATH变量的顺序:
echo $PATH
确保/usr/bin(yum安装的Node默认位置)在/usr/local/bin(旧版本可能的位置)前面。如果顺序不对,临时调整可以执行:
export PATH=/usr/bin:$PATH
要永久生效的话,编辑/root/.bashrc或者/etc/profile,把上面的export命令加进去,再执行source /root/.bashrc即可。
内容的提问来源于stack exchange,提问作者LIGHT




