执行brew link php报错/usr/local/include异常的解决方法
解决brew link php时的权限与目录缺失问题
嘿,我来帮你搞定这个brew link php的麻烦!你碰到的是两个典型的macOS + Homebrew组合问题:一是/usr/local/include目录压根不存在,二是系统的SIP(系统完整性保护)限制了直接修改/usr/local的所有权。按下面的步骤一步步来就能解决:
第一步:手动创建缺失的include目录
既然系统里没有这个必要的目录,我们先用sudo手动创建它:
sudo mkdir -p /usr/local/include
这里的-p参数很重要,它能确保如果父目录不存在的话也会自动创建,避免出现“目录不存在”的报错。
第二步:正确调整目录权限(绕开SIP限制)
从macOS El Capitan开始,系统启用了SIP,直接修改整个/usr/local目录的所有权会被系统阻止,但我们可以修改brew实际需要操作的子目录权限,包括刚创建的include:
sudo chown -R $(whoami) /usr/local/include sudo chown -R $(whoami) /usr/local/lib /usr/local/bin /usr/local/share
把这些子目录的所有权改成当前登录用户,这样后续Homebrew的操作就不会再碰到权限问题了。
第三步:重新执行brew link命令
现在目录和权限都配置好了,重新运行link命令就行。注意:如果你安装的是PHP 7.2,Homebrew里对应的包名可能是php@7.2(旧版本PHP会带版本后缀),所以可以先确认一下安装的包名:
brew list | grep php
找到对应的包名后,执行:
brew link php@7.2
如果之前的命令就是brew link php,直接重新运行也可以。
额外排查:如果还是有问题
要是执行后依然有权限报错,先让Homebrew自己检查问题:
brew doctor
它会给出非常具体的修复指引,跟着提示操作就能解决剩余的配置或权限问题。
内容的提问来源于stack exchange,提问作者Fatm
相关产品推荐
相关产品推荐

