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

チェックアウトエルキャピタンと自作:

すでに存在する場合/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 を再起動すると、Homebrew への書き込みとインストールが可能になります/usr/local

答え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)は間違いなく最悪のアイデアです。

関連情報