Ubuntu20.04安装Node.js17.x失败 仅装得v10.19.0如何解决
问题根因
- NodeSource安装脚本运行到
apt-get update步骤时,被系统中已有的其他异常第三方源报错中断,未完成Node.js 17.x版本源的写入配置。后续执行安装命令时,拉取的是Ubuntu 20.04默认源自带的v10.19.0旧版Node.js,和curl运行状态无关。 - 触发中断的源报错共三类:NordVPN源TLS握手失败、无有效Release文件;MySQL APT源缺失对应GPG公钥;微软Edge源缺失对应GPG公钥。
修复操作步骤
1. 先修复APT源报错
逐个处理异常源,保证apt-get update可以正常跑完:
- 处理NordVPN源:如果暂时不需要使用NordVPN,直接执行
sudo rm /etc/apt/sources.list.d/nordvpn.list删除该源配置文件即可。 - 补全缺失的GPG公钥:
执行sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 467B942D3A79BD29,补全MySQL源的公钥。
执行sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EB3E94ADBE1229CF,补全微软Edge源的公钥。 - 验证修复效果:执行
sudo apt-get update,确认输出中没有E:开头的错误级提示即可,W:开头的警告不影响后续操作。
2. 卸载已安装的旧版Node.js
执行命令彻底清除旧版本,避免包版本冲突:
sudo apt remove -y nodejs sudo apt autoremove -y
3. 重新运行NodeSource安装脚本
回到用户主目录重新执行安装流程,此时APT更新环节不会被异常源打断,脚本可以正常完成17.x版本源的配置:
cd ~ curl -sL https://deb.nodesource.com/setup_17.x -o nodesource_setup.sh sudo bash nodesource_setup.sh
4. 安装Node.js 17.x
脚本执行无报错后,直接执行安装命令:
sudo apt install -y nodejs
安装完成后执行node -v验证版本,正常会输出v17.x开头的版本号,对应npm也会同步安装为匹配的最新版本。
提示:Node.js 17.x是非LTS版本,已结束官方维护,如果项目没有强制锁版本要求,更建议选择仍在维护期的LTS版本安装,稳定性和兼容性更好。
内容的提问来源于stack exchange,提问作者Thermal Ice
相关产品推荐
相关产品推荐

