The world's most advanced operating system.

Mac OS Xには主にFreeBSDから移植されたコマンドが最初からインストールされているので、多くの作業は新しくコマンドをインストールしなくても実行できる。しかし、自分が使いたいコマンドがないときには新しくインストールする必要がある。こういった場合に利用できる便利なパッケージ管理システムに「Homebrew」がある。

Mac OS X向けのパッケージ管理システムとしてはMacPortsが代表的なもののひとつ。HomebrewはMacPortsと比較してインストール作業そのものが簡単。基本的にHomebrewのWebサイトに掲載されているワンライナーのコマンドを実行するだけでインストールが完了する。

Homebrew Webページ

Homebrew Webページ : インストール方法が説明されている

% ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"

MacPortsは利用開始するまでにそれなりに手間がかかるため、ビギナー向けとは言い難い面がある。Homebrewはセットアップが簡単で、その後の利用も簡単。たとえば新しいコマンドをインストールしたいなら「brew install コマンド名」のようにbrewコマンドを実行する。

% brew install tree
==> Downloading http://mama.indstate.edu/users/ice/tree/src/tree-1.6.0.tgz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/tree/1.6.0 MANDIR=/usr/local/Cellar/tree/1.6.0/share/man/man1 CC=cc CFLAGS=-fomit-frame-p
🍺  /usr/local/Cellar/tree/1.6.0: 7 files, 120K, built in 2 seconds
%

brewコマンド経由でインストールされたコマンドは次のように確認できる。

% brew list -l
total 0
drwxr-xr-x  3 daichi  admin  102  9  1 13:42 bsdmake
drwxr-xr-x  3 daichi  admin  102  9  2 06:19 tree
drwxr-xr-x  3 daichi  admin  102  9  1 13:44 wget
%

これらコマンドは実際には/usr/local/Cellar/ディレクトリ以下に次のようにインストールされている。

% tree /usr/local/Cellar/
/usr/local/Cellar/
├── bsdmake
│   └── 24
│       ├── INSTALL_RECEIPT.json
│       ├── bin
│       │   └── bsdmake
│       └── share
│           ├── man
│           │   └── man1
│           │       └── bsdmake.1
│           └── mk
│               └── bsdmake
│                   ├── Makefile
│                   ├── bsd.README
│                   ├── bsd.compat.mk
│                   ├── bsd.cpu.mk
│                   ├── bsd.dep.mk
│                   ├── bsd.doc.mk
│                   ├── bsd.endian.mk
│                   ├── bsd.files.mk
│                   ├── bsd.incs.mk
│                   ├── bsd.info.mk
│                   ├── bsd.init.mk
│                   ├── bsd.kmod.mk
│                   ├── bsd.lib.mk
│                   ├── bsd.libnames.mk
│                   ├── bsd.links.mk
│                   ├── bsd.man.mk
│                   ├── bsd.nls.mk
│                   ├── bsd.obj.mk
│                   ├── bsd.own.mk
│                   ├── bsd.pkg.mk
│                   ├── bsd.port.mk
│                   ├── bsd.port.post.mk
│                   ├── bsd.port.pre.mk
│                   ├── bsd.port.subdir.mk
│                   ├── bsd.prog.mk
│                   ├── bsd.subdir.mk
│                   ├── bsd.sys.mk
│                   └── sys.mk
├── tree
│   └── 1.6.0
│       ├── CHANGES
│       ├── INSTALL_RECEIPT.json
│       ├── LICENSE
│       ├── README
│       ├── TODO
│       ├── bin
│       │   └── tree
│       └── share
│           └── man
│               └── man1
│                   └── tree.1
└── wget
    └── 1.14
        ├── AUTHORS
        ├── COPYING
        ├── ChangeLog
        ├── INSTALL_RECEIPT.json
        ├── NEWS
        ├── README
        ├── bin
        │   └── wget
        └── share
            └── man
                └── man1
                    └── wget.1

20 directories, 46 files
%

brewコマンドに指定するサブコマンドは、brewコマンドになにも引数を指定せずに実行することで表示させることができる。

% brew
Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | --config]

Brewing:
  brew create [URL [--no-fetch]]
  brew edit [FORMULA...]
  open https://github.com/mxcl/homebrew/wiki/Formula-Cookbook

Further help:
  man brew
  brew home
%

コマンドそのものは/usr/local/bin/にシンボリックリンクの形で貼り付けられる。MacPortsよりも消費するディスク容量も少なく、処理もサクサク進む印象がある。使ったことがないのであれば、ぜひ一度試してみてほしいパッケージ管理システムだ。