在WSL2 Ubuntu 20.04中安装Node.js 10.x时出现版本不符且npm缺失问题
在WSL2 Ubuntu 20.04中安装Node.js 10.x时出现版本不符且npm缺失问题
我太懂这种无奈了——明明之前在WSL2 Ubuntu 20.04上用得好好的Node.js 10.x安装命令,换了电脑就跑偏成12.22.9,连npm都丢了,偏偏项目依赖Symfony 3这种老框架,根本没法升级Node版本。咱们一步步来解决这个问题:
第一步:彻底清理所有Node.js相关残留
问题大概率出在卸载不彻底,或者系统里残留了旧的源配置,导致重装时总是拉错版本。执行以下命令把痕迹清干净:
# 彻底卸载nodejs和npm(如果有残留的话) sudo apt-get purge nodejs npm -y # 自动移除冗余依赖包 sudo apt-get autoremove -y # 清理缓存文件 sudo apt-get autoclean # 删除nodesource的源配置文件(这很关键,避免残留的源拉错版本) sudo rm -rf /etc/apt/sources.list.d/nodesource.list sudo rm -rf /etc/apt/sources.list.d/nodesource.list.save # 刷新apt缓存 sudo apt clean sudo apt update
第二步:重新精准安装Node.js 10.x和对应npm
这次咱们不依赖源的默认版本,直接指定具体版本号安装,确保不会拉错:
# 添加Node.js 10.x的官方源 curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash - # 安装指定版本的nodejs和npm(对应你之前成功的版本) sudo apt-get install -y nodejs=10.24.1-1nodesource1 npm=6.14.12-1nodesource1
第三步:验证安装结果
安装完成后执行以下命令确认版本:
node -v # 应该返回 v10.24.1 npm -v # 应该返回 6.14.12
为什么会出现这个问题?
Node.js 10.x已经完全停止维护,nodesource的源可能在Ubuntu 20.04环境下的默认映射有调整,加上新电脑可能之前残留了Node.js 12.x的源配置,导致apt优先安装了12.x版本;另外部分老版本的Node包可能拆分了npm,不过咱们指定完整版本号就能解决这个问题。
备注:内容来源于stack exchange,提问作者Mr. Kenneth




