You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在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

火山引擎 最新活动