MacPortsではなく、homebrewを使う
homebrew登場
Mac OS Xでのパッケージ管理システムと言えばMacPortsとFinkが有名ですが、最近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には大量のパッチが有るので)。

コメント[2]
出力例にある "--disable-i" は "--disable-iri" の間違いですよね?
Posted by cocoatomo at 2010年11月 3日 12:07 | 返信
ご指摘の通りですね。表示が切れたままコピペしてしまった様です。
Posted by ash
at 2010年11月 3日 16:21 | 返信
コメントする