![Homebrew 无法在 El Capitan 中安装新应用](https://linux22.com/image/1457461/Homebrew%20%E6%97%A0%E6%B3%95%E5%9C%A8%20El%20Capitan%20%E4%B8%AD%E5%AE%89%E8%A3%85%E6%96%B0%E5%BA%94%E7%94%A8.png)
刚刚升级到供开发人员使用的 El Capitan 测试版。
Deniss-MBP:src me$ brew install hg
Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
==> Downloading https://mercurial.selenic.com/release/mercurial-3.4.2.tar.gz
Already downloaded: /Library/Caches/Homebrew/mercurial-3.4.2.tar.gz
==> make PREFIX=/usr/local/Cellar/mercurial/3.4.2 install-bin
#include <stdio.h>
^
1 error generated.
error: command 'clang' failed with exit status 1
make: *** [build] Error 1
READ THIS: https://git.io/brew-troubleshooting
Warning: You are using OS X 10.11.
We do not provide support for this pre-release version.
You may encounter build failures or other breakage.
有什么想法可以使它工作吗?
注意:当我这样做时brew doctor
它说
Warning: Your Xcode (6.3.2) is outdated
Please update to Xcode 7.0.
Xcode can be updated from
https://developer.apple.com/downloads
但我的电脑上确实安装了 xcode-beta 7。不确定这是否有关联。以防万一
答案1
首先我建议你看一下这个: https://www.reddit.com/r/apple/comments/3994os/rootless_feature_is_in_os_x_1011_and_it_disallows/
无根安全性改变了 El Capitan 中的很多东西,除此之外您还xcode-select
指出了什么?您可以使用
xcode-select -h
它来查看用法,非常简单。
答案2
如果/usr/local
已经存在:
sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
如果/usr/local
不存在:
- 重新启动进入恢复模式(启动时按住 Cmd+R)并访问终端。
- 在该终端运行:
csrutil disable
- 重新启动回到OS X
打开终端应用程序并执行:
sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
重新启动进入恢复模式并再次访问终端。
- 在该终端执行:
csrutil enable
- 重新启动回到 OS X 然后你就可以写入
/usr/local
并安装 Homebrew。
答案3
制定遗嘱sudo chown -R $(whoami):admin /usr/local
将破坏可能存储在/usr/local
子文件夹下的任何代理,这些代理必须由 拥有root:wheel
。
注意:在 El Capitan 中,是为及其子文件夹设置的root:wheel
默认设置。user:group
/usr/local
此外,人们可能拥有第三方内核扩展,也必须具有root:wheel
权限(例如防病毒软件),否则 OS X 将阻止它们加载。
因此设置/usr/local
为$(whoami)
绝对是最糟糕的想法。