Homebrew 无法在 El Capitan 中安装新应用

Homebrew 无法在 El Capitan 中安装新应用

刚刚升级到供开发人员使用的 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

查看El Capitan 和 Homebrew

如果/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)绝对是最糟糕的想法。

相关内容