更新npm版本遇Git权限拒绝错误,sudo执行仍无效求助
解决npm全局更新时Git权限拒绝的问题
我之前也碰到过一模一样的情况——执行npm i -g npm更新npm时,碰到Git权限不足的错误,连sudo都不管用。给你几个亲测有效的解决思路:
1. 修复npm缓存目录的权限
这个是最常见的原因,缓存目录的所有权可能被意外改成了root或者其他用户,导致git无法写入:
- 先检查缓存目录的权限:
ls -la /Users/my/.npm/_cacache - 把缓存目录及子目录的所有权改回当前用户:
sudo chown -R $USER:$USER /Users/my/.npm - 之后再尝试更新npm:
npm i -g npm
2. 切换Git协议为HTTPS
有时候git://协议会被防火墙或者权限策略限制,换成HTTPS协议就能绕过这个问题:
- 配置npm默认使用HTTPS访问GitHub仓库:
npm config set git://github.com/:https://github.com/ - 配置完成后再执行更新命令即可。
3. 手动下载npm安装包更新
如果上面的方法都不奏效,可以跳过git直接用官方脚本安装最新版npm:
- 执行官方安装脚本:
这个脚本会自动检测并替换你系统里的全局npm,全程不需要git操作,能完美避开权限问题。curl -L https://www.npmjs.com/install.sh | sh
我当时是缓存目录权限乱了,用第一个方法就搞定了,你可以先从第一个开始试~
内容的提问来源于stack exchange,提问作者user9854051
相关产品推荐
相关产品推荐

