记使用 yum 升级 nodejs 遇到的坑
tips: 解决办法在文章底部,请使用右侧导航直接跳转到 解决办法
问题描述
最近在使用 centos 7 时需要升级到 nodejs 10 版本,直接执行 yum update nodejs
发现 yum 源里还是 6.x,并且提示已经是最新版本了。。
??什么鬼,去 nodesource 查看原来需要将 nodesource 源升级一下,so,执行以下命令
1 | curl -sL https://rpm.nodesource.com/setup_10.x | bash - |
竟然发现还是 6.x 版本
1 | ==================================================================================================================== |
咦?难道是需要将 node 先卸载了吗?于是 yum remove nodejs
然后 yum install nodejs
。。。然后是你猜到的结果,还还还还是 6.x 版本。。。
随后猜测可能是之前安装的 nodejs 6.x 版本的 nodesource 源,于是在网上查找了资料想办法删除之前的旧版 nodesource 源,执行以下命令
1 | cd /etc/yum.repos.d/ |
然后重新安装 nodejs,依旧不行。问题出在哪里呢?甚至开始怀疑是机器的问题。。
过了几天回到这个问题,又查找了不少资料, 根据
nodesource/distributions#340 (真是为难我这个英语渣了) 中的一个回答,发现 yum clean all
时,可能并不会清除 repo 不存在的缓存文件,并提供了一行代码来手动清除 yum 缓存
1 | rm -rf /var/cache/yum/* |
随后安装最新版的 nodesource 源,安装 nodejs,于是
1 | ==================================================================================================================== |
🎉 成功了!怀着激动的心情解决了问题并写下这篇心得,希望能帮到大家,最后总结一下
解决办法
无需删除旧版本的 nodejs,该问题只与 yum 缓存有关
1 | # 以下命令请均以 sudo 权限执行 |