Mac High Sierra下npm全局安装git-run失败的权限问题求助
解决Mac High Sierra 10.13.4下npm安装git-run的权限问题
我之前也踩过类似的npm全局包权限坑,结合你的错误日志来看,核心问题是全局npm目录和缓存目录的权限归属混乱,下面是一步步的实操解决方法:
1. 修复全局npm目录的用户归属(解决无sudo权限问题的核心)
Mac系统里,/usr/local下的相关目录本该属于当前用户而非root。执行这条命令修改目录归属:
sudo chown -R $(whoami) /usr/local/lib/node_modules /usr/local/bin /usr/local/share
设置完之后,你就再也不需要靠sudo来装全局npm包了,从根源避免权限冲突。
2. 清理并修复npm缓存目录权限
之前用sudo安装导致缓存目录(/Users/myuser/.npm)里混了root权限的文件,这就是sudo安装时克隆依赖失败的原因。先强制清理缓存:
sudo npm cache clean --force
再把缓存目录的归属改回当前用户:
sudo chown -R $(whoami) /Users/myuser/.npm
3. 重新安装git-run
现在直接执行安装命令,不用加sudo:
npm install -g git-run
为什么之前的操作没起作用?
- 无sudo安装失败:是因为
/usr/local/bin目录需要当前用户有写入权限来创建git-run的软链,你之前没修改这个目录的归属,所以提示权限不足; - sudo安装失败:用
sudo后,git克隆的临时目录属于root,但npm后续操作会切回普通用户身份,导致无法访问该目录——你只改了_cacache/tmp的权限,但整个缓存目录的归属还是root,所以没用; chmod -R 777是不安全的操作,而且只开放了权限却没解决文件归属的核心问题,自然无法彻底修复。
内容的提问来源于stack exchange,提问作者oderfla




