【Tips】OS X El CapitanでHomebrewを使う場合、注意したいたった1つのポイント

[PR]記事内のアフィリエイトリンクから収入を得る場合があります
  • URLをコピーしました!

OS X El Capitan

10月1日に待望の正式版がリリースされた「OS X El Capitan」。システムの安全性を高めるために、地味ながら重要な機能「System Integrity Protection」(SIP)が導入されています。

SIP有効化では、rootユーザーも、/usr(ただし/usr/localは除外)、/System、/binといった、OSにとって重要なフォルダに書き込むことができず、不正なファイル改変を防ぐことが可能となっているのです。

一方、Macのパッケージシステム「Homebrew」は、デフォルトで/usr/localをインストール先として使っているため、一見SIPに無関係のようにも思えますが、いくつか注意しないといけない落とし穴が存在しています。

OS X El CapitanでHomebrewを使うための注意点が
El Capitan & Homebrew」にて、まとめられています(Hacker News)。

目次

1. /usr/localが存在する場合

OS X El Capitanをクリーンインストールあるいはアップグレードした後に、/usr/localが存在する場合、パーミッションを以下のコマンドで一般ユーザーが書き込めるように変更する必要があります。

sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local

これは簡単です。

2. /usr/localが存在しない場合

なんらかの理由で/usr/localが存在しない場合、かなり厄介です。SIPを一度無効にして/usr/localを作成後、パーミッションを変更し、またSIPを有効に戻す必要があります。

その手順は以下の通りです。

  • Command+Rを押しながら起動しリカバリモードで起動
  • ターミナルを開き「csrutil disable」を実行(SIPを無効化)
  • 再起動
  • ターミナルを開き以下のコマンドを実行
    sudo mkdir /usr/local && sudo chflags norestricted /usr/local && sudo chown $(whoami):admin /usr/local && sudo chown -R $(whoami):admin /usr/local
    
  • 再度Command+Rを押しながら起動しリカバリモードで起動
  • ターミナルを開き「csrutil enable」を実行(SIPを有効化)
  • 再起動すると/usr/localに書き込める状態になっているのでHomebrewを普通にインストール

まとめ

/usr/localが存在しさすれば、たいして面倒でないことがわかります(消してしまっても、対処不能というほどではないですが)。/usr/localはHomebrew以外も使うフォルダですので、アップグレード前に/usr/localを削除しないように注意したほうがよさそうです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次