macOS 10.13.1执行brew update报错:无法chown /usr/local
解决macOS High Sierra下brew update提示/usr/local不可写的问题
我之前在macOS 10.13版本上也碰到过一模一样的brew权限问题,核心原因是**系统完整性保护(SIP)**默认限制了修改/usr/local根目录的所有权,哪怕用sudo也绕不开这个限制,这就是你执行chown命令失败的原因。
快速修复方案
既然SIP不让改/usr/local本身的权限,我们只需要确保目录内的所有子文件和子目录归当前用户所有就可以了,执行这条命令:
sudo chown -R $(whoami) /usr/local/*
这条命令会跳过/usr/local根目录,只修改里面的所有内容,完美避开SIP的限制。执行完之后再试brew update,大概率就能正常运行了。
如果快速修复无效,试试重新安装Homebrew
要是上面的方法还是解决不了问题,可能是Homebrew的安装状态和系统权限不兼容,建议彻底卸载后重新安装:
- 先卸载现有Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
- 再重新安装适配High Sierra的Homebrew版本:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
重新安装后的Homebrew会自动适配系统的SIP规则,正确配置好所有目录权限。
额外说明
从你贴出来的/usr/local目录列表来看,大部分子目录已经是你的用户megasap所有了,可能只是个别隐藏文件或目录的权限异常才导致brew报错,优先试试快速修复方案就好。
内容的提问来源于stack exchange,提问作者Axil
相关产品推荐
相关产品推荐

