2011年2月11日金曜日

HomeBrewを使ってみる

HomeBrewは最近登場したMacOS X用パッケージマネージャ。同様なものにはMacPortsfinkがあるが、以下のような点はHomeBrew独特のものだ。

  • perlやrubyなどMacOS Xに最初からインストールされているものがあれば、積極的にそれを使用する。(例えばMacPortsはperlやrubyを必要とするパッケージがあれば、OSに入っているそれらを使わずに、わざわざMacPorts専用のperlやrubyをインストールするように作られている。)
  • パッケージのルール(Formulaと呼ぶ)がrubyで書かれる。
  • パッケージのインストール先として標準的な/usr/local/を使う。

これまではMacPortsのお世話になっていたが、MacPortsの複雑さ、OSにバイナリが存在するものまでいちいちコンパイルをしなければならない面倒さに何とかならないかと思っていたのでHomeBrewに移行してみることにした。

MacPortsのアンインストール

ガイドを参考に一気に

sudo port -f uninstall installed
sudo rm -rf \
    /opt/local \
    /Applications/DarwinPorts \
    /Applications/MacPorts \
    /Library/LaunchDaemons/org.macports.* \
    /Library/Receipts/DarwinPorts*.pkg \
    /Library/Receipts/MacPorts*.pkg \
    /Library/StartupItems/DarwinPortsStartup \
    /Library/Tcl/darwinports1.0 \
    /Library/Tcl/macports1.0 \
    ~/.macports

HomeBrewのインストール

Installationを参考にこのような感じで。

ruby -e "$(curl -fsSLk https://gist.github.com/raw/323731/install_homebrew.rb)"

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

いつも使っているものを次々とインストール

brew install lv # などなど

FDcloneをインストールする

有ればあったで便利なファイラーFDcloneはHomeBrewのパッケージには存在しないが、HomeBrewならば簡単に追加することができる。

以下のようにアーカイブのURLを引数にcreateコマンドを実行する。

brew create http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz

Formula名(パッケージ名)を聞かれるのでfdcloneと入力。

formula name [FD-3.00j]: fdclone
Warning: Version cannot be determined from URL.
You'll need to add an explicit 'version' to the formula.

エディタが開くのでFormulaファイルを編集する。とは言っても最初からある程度内容が自動的に記述されているので、必要に応じて変更・追加する程度。今回は以下のようにしてみた。

require 'formula'

class Fdclone <Formula
  url 'http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.00j.tar.gz'
  homepage 'http://hp.vector.co.jp/authors/VA012337/soft/fd/'
  md5 '9e12c8a1480cc5f535bf6df852a0defc'
  version '3.00j'

  # depends_on 'cmake'

  def install
    system "make", "PREFIX=#{prefix}"
    system "make MANTOP=#{man} install"
    system "make MANTOP=#{man} jcatman"
  end
end

ここまでできたら、あとは普通にinstallコマンドを叩く。

brew install fdclone

気になった点

  • MacPortsでは可能だった日本語manが表示できない。MacPortsのGNU groffは日本語に対応しているが、MacOS Xのgroffは日本語に対応していない。従ってHomeBrewパッケージの日本語manも表示ができない。
  • sshfsが動かない。原因は今のところ不明。