2010年7月21日

MacPortsではなく、homebrewを使う

homebrew登場

Mac OS Xでのパッケージ管理システムと言えばMacPortsFinkが有名ですが、最近homebrewという選択肢が出てきました。

http://mxcl.github.com/homebrew/

MacPortsとの主な違いは、以下の3点です。

  • 依存するライブラリや他のソフトは、極力Mac OS Xにインストールされているものを使う
  • デフォルトのインストール先は、一般的に使われる/usr/local/bin/
  • CPANやRubyGemsといった、他のパッケージ管理機能と重複するパッケージは提供しない

rubyや、emacsの様に、最新安定版がMac OS Xでデフォルトでインストールされているものより大きくバージョンアップされているものはhomebrewでパッケージが提供されていますが、perlやvimの様に最新安定版がたいして変わっていない物はパッケージは提供されていません(まぁ、Perlにはperlbrewが有りますが)。

インストール

では実際に使ってみましょう。

動作環境の条件は以下の三つです。

  • Intel CPUのMacであること
  • Mac OS X Leopard(10.5)以上であること
  • XcodeとX11がインストールされていること

homebrew自身はrubyで書かれたスクリプトになっていて、GitHubからダウンロードして使います。ターミナルより

$ ruby -e "$(curl -fsS http://gist.github.com/raw/323731/install_homebrew.rb)"
と入力します。

その後、インストール内容を表示するメッセージが表示され、途中でsudoのパスワードが要求され、

==> This script will install:
/usr/local/bin/brew
/usr/local/Library/Formula/...
/usr/local/Library/Homebrew/...

Press enter to continue
==> sudo /bin/mkdir /usr/local
Password:
==> sudo /bin/chmod g+w /usr/local
==> sudo /usr/bin/chgrp staff /usr/local
==> Downloading and Installing Homebrew...
==> Installation successful!
インストールは完了します。

メインとなるbrewコマンドのインストール先は、上記のメッセージの通り/usr/local/bin/brewなので、必ずシェルの環境変数に、/usr/local/bin/へのパスを設定して下さい。

なお、インストール時に使ったアカウントのアクセス権限が自動的に設定されているので、パッケージインストール時にはsudoコマンドは不要です。

パッケージのインストール

Formulaの検索

homebrewではパッケージのことをFormulaと言います。まずはインストール可能なFormulaを検索します。

$ brew search wget
wget

直接/usr/local/Library/Formulaの中を見ても良いでしょう。

Formula自身もrubyのスクリプトとして書かれています(DSLってやつですね)。

例えば、wgetをインストールするためのformulaであるwget.rbの中身は、

require 'formula'

# iri support requires libidn, which pulls in getteext, so we
# disable this by default.

class Wget <Formula
  homepage 'http://www.gnu.org/software/wget/'
  url 'http://ftp.gnu.org/gnu/wget/wget-1.12.tar.bz2'
  md5 '308a5476fc096a8a525d07279a6f6aa3'

  depends_on "libidn" if ARGV.include? "--enable-iri"

  def install
    args = ["--disable-debug", "--prefix=#{prefix}"]
    args << "--disable-iri" unless ARGV.include? "--enable-iri"

    system "./configure", *args
    system "make install"
  end
end
となっています。

インストールファイルの場所や、MD5の値、インストール時の設定等、必要最小限の事だけが記述されている比較的シンプルな内容になっています。

パッケージのインストール

インストールするFormulaの名前が分かったらインストールします。

ターミナルより、

$ brew install wget
と入力すると、インストールが始まります。
==> Downloading http://ftp.gnu.org/gnu/wget/wget-1.12.tar.bz2
######################################################################## 100.0%
==> ./configure --disable-debug --prefix=/usr/local/Cellar/wget/1.12 --disable-iri
==> make install
/usr/local/Cellar/wget/1.12: 7 files, 576K, built in 33 seconds

これで/usr/local/bin/wgetがインストールされました。

なお、実際には/usr/local/bin/wgetは別ディレクトリに格納されているバージョン別ディレクトリ配下に格納されたバリナリへのシンボリックリンクになっています(Cellarはバイナリの格納先です)。

$ ls -l
total 40
-rwxr-xr-x  1 xxx  staff  12648  7 21 22:06 brew
lrwxr-xr-x  1 xxx  staff     28  7 22 06:30 wget -> ../Cellar/wget/1.12/bin/wget
これでバイナリのバージョンアップも簡単にできるようになっています。

MacPortsに比べるとまだパッケージ数は少ないですが、インストールされるファイル数が圧倒的に少ないのと、自分でFormulaを書くのも比較的簡単にできるhomebrewは今後の定番になりそうなコマンドです。

次回は、個人的にはvimを最新版で使いたいのでvimのFormulaを作る話を書きたいと思います(なにせvimには大量のパッチが有るので)。

トラックバックURL

このエントリーのトラックバックURL:
http://ash.roova.jp/mt/mt-tb.cgi/197

トラックバック

» [Mac]MacPortsアンインストール/homebrewインストール from CROSS HOPE
Mac OS Xでのパッケージ管理システム、MacPortsのアップデートがあんまりにも重いので「重いよー」と音を上げた自分とMacBook2,1(Late 2006)。 id:kumorihareが見かねて「homebrew」を紹介してくれたので、ちゃっちゃと乗り換えました。 住処のMacBookと自宅のiMacでインス 続きを読む

コメント[2]

出力例にある "--disable-i" は "--disable-iri" の間違いですよね?

ご指摘の通りですね。表示が切れたままコピペしてしまった様です。

コメントする