Homebrew のエラー

いつものように Homebrew をアップデートしようとすると以下のようなエラーが吐き出されました。

Warning: The /usr/local directory is not writable.
Even if this directory was writable when you installed Homebrew, other
software may change permissions on this directory. Some versions of the
"InstantOn" component of Airfoil are known to do this.

You should probably change the ownership and permissions of /usr/local
back to your user account.

Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

なので調べてみると

$ ls -lad /usr/local
drwxr-xr-x  17 root  wheel  578  2  3 06:02 /usr/local

とのこと。では、所有者をユーザーに替えてみる

$ sudo chown -R `whoami` /usr/local
$ ls -lad /usr/local
drwxr-xr-x  18 userName  wheel  612  3  1 02:55 /usr/local

すると、今度は違うエラーが吐き出される

Warning: You have uncommitted modifications to Homebrew
If this a surprise to you, then you should stash these modifications.
Stashing returns Homebrew to a pristine state but can be undone
should you later need to do so for some reason.
    cd /usr/local/Library && git stash && git clean -d -f

Warning: Your Homebrew is outdated.
You haven't updated for at least 24 hours, this is a long time in brewland!
To update Homebrew, run `brew update`.

エラー内容の指示に従って

$ cd /usr/local/Library && git stash && git clean -d -f
$ brew update

を実行してすべて解決!

先日の OS X Mavericks 10.9.2 アップデートで書き変わっちゃったのかな。

Homebrewを導入

OS X上でソフトウェアの導入を単純化するパッケージ管理システムのひとつであるHomebrewを導入しました。これまで使用していたMacPortsに比べ依存関係でインストールされるソフトウェアが少ないという点が気に入りました。MacPortsはOS X標準でインストールされているソフトウェアを利用せず、新規にすべてのソフトウェアをインストールする特徴がありました。HomebrewはOS X標準で準備されているソフトウェアを出来るだけ利用する設計になっているので重複することを抑えられます。また、MacPortsと同様、独自のディレクトリへインストールされますが、シンボリックリンクを /usr/local/bin へ張ってくれるので余計なトラブルを避けられそうです。他にも覚えるコマンドが少なく済みそうなのも魅力のひとつです。 🙂

導入するには以下3つの環境が整っていなければなりません。また、なによりもターミナルのあの黒い画面を見てもビビらない勇気を持っている方が対象となります。

XcodeをApp StoreからインストールしただけではCommand Line Toolsはインストールされていません。Xcodeを起動し、[環境設定]=>[ダウンロード]からインストールします。Javaのインストールはターミナルを起動し $ java -version と入力しリターンキーを押します。既にインストールされていればバージョンが表示され、されていなければインストールを促すダイアログが表示されますのでインストールを行ってください。

次にPathの読込み順を入れ替えます。冒頭でも説明しましたが、ソフトウェアは /usr/local/bin へインストールされますので、先頭で読込まれるように設定しましょう。慣例に従えば ~/.bashrc or ~/.bash_profile へ設定を書き込みます。

export PATH=/usr/local/bin:$PATH

または、直接システム環境変数を /usr/local/bin が1行目に来るように書き換えます。

$ open /etc/paths

導入

  1. $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
  2. $ brew doctor #動作チェック
  3. $ sudo chown -R $USER /usr/local #権限の変更
  4. $ brew update #アップデート
  5. $ brew upgrade #アップグレード