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. Не уверен, что это связано. Так, на всякий случай

3 ответа

Решение

Сначала я рекомендую вам пройтись по этому адресу: 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 чтобы увидеть использование, это очень просто.

Проверьте 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.

Делая sudo chown -R $(whoami):admin /usr/local сломает любые агенты, которые могут храниться под /usr/local подпапки, которые должны принадлежать root:wheel,

Примечание: в Эль-Капитане, root:wheel по умолчанию user:group это установлено для /usr/local и его подпапки.

Кроме того, люди могут иметь сторонние расширения ядра, которые также должны иметь root:wheel разрешения (например, антивирусное программное обеспечение), в противном случае OS X будет препятствовать их загрузке.

Итак, постановка /usr/local в $(whoami) это определенно худшая идея.

Другие вопросы по тегам