Ubuntu 16.04下误删npm5.6.0(未卸Node.js8.9.4)后重装报错求助
解决Ubuntu 16.04下误删npm后的重装问题
嗨,别慌!这种误操作挺常见的,咱们不用卸载Node.js 8.9.4就能搞定。一步步来:
第一步:确认Node.js状态正常
先检查你的Node.js还能不能正常运行,打开终端输入:
node -v
如果输出v8.9.4,说明Node本身没问题,接下来专心修复npm就行。
第二步:清理残留的npm文件
误删npm后,系统里可能留着无效的快捷方式或缓存文件,先彻底清掉:
sudo rm -rf /usr/bin/npm /usr/local/bin/npm ~/.npm ~/.npmrc
这些是Ubuntu下npm常用的安装和缓存路径,删除它们不会影响Node.js本身。
第三步:三种重装npm的方法(按顺序试)
方法一:用Node内置工具装指定版本npm
npm本质是Node的一个包,咱们可以直接用Node来安装你需要的5.6.0版本:
sudo node -e "const {exec} = require('child_process'); exec('npm install -g npm@5.6.0', (err) => {if(err) console.error(err); else console.log('npm重装成功!')})"
如果终端提示找不到npm,说明系统里完全没了npm的可执行文件,那就换下面的方法。
方法二:覆盖安装Node.js补全npm
既然不想卸载Node,直接下载对应版本的安装包覆盖安装,这样会自动把缺失的npm补回来:
- 到Node.js官网下载v8.9.4版本的Ubuntu 64位安装包(格式是
.tar.xz),传到你的Ubuntu系统里; - 打开终端,进入安装包所在的目录,解压文件:
tar -xvf node-v8.9.4-linux-x64.tar.xz
- 把解压后的文件复制到系统目录,覆盖原有文件:
sudo cp -r node-v8.9.4-linux-x64/* /usr/local/
完成后输入npm -v,应该就能看到5.6.0的版本了。
方法三:apt修复(仅限通过apt装的Node)
如果你最开始是用Ubuntu的apt仓库装的Node.js,可以试试重新安装修复:
sudo apt-get --reinstall install nodejs npm
注意:apt仓库里的Node版本可能和你现在的8.9.4不一致,如果用这个方法导致版本变了,记得再切换回8.9.4就行。
最后验证
完成上面的步骤后,在终端输入:
npm -v
要是输出5.6.0,那问题就彻底解决啦!
内容的提问来源于stack exchange,提问作者Pertiwi Cahya
相关产品推荐
相关产品推荐

