動機
HaskellをむりやりSnow Leopardで動くようにしたのはいいけれど、cabalがないと面倒なので設定した。
前提
Haskellでは同じ発音をする、"Cabal"と"cabal"があります。2者は大きく違います。注意。
Cabal
Haskellで書かれたパッケージ用のmakeみたいなもの。パッケージ内にはSetup.lhsやSetup.hsというビルド用のファイルがあるので基本的には下記の流れでインストール。
$ runhaskell Setup configure $ runhaskell Setup build $ sudo runhaskell Setup install
詳しくはhelpを見てください。(runhaskell Setup --help)
cabal (cabal-install)
Haskell向けのパッケージ管理システム。Pythonのeasy_install、PerlのCPAN、Rubyのgemsみたいなもの。パッケージHOGEを探してインストールする場合は下記。
$ cabal list HOGE $ cabal install HOGE
インストール方法
まず前提としてGHCをSnow Leopardで動くようにしておく。
その後ここを参考にしてSnow Leopardで無理やり動かすように各種パッケージを設定。
以下パッケージのバージョンは執筆時のものです。またいずれはMacPortsでもHaskellのもろもろをゴリっと対応してくれると思うので、今だけのwork aroundです。
まずは一番最初に必要なCabalのインストール。
$ curl -O http://hackage.haskell.org/packages/archive/Cabal/1.8.0.2/Cabal-1.8.0.2.tar.gz $ tar xzf Cabal-1.8.0.2.tar.gz $ cd Cabal-1.8.0.2 $ ghc --make Setup $ ./Setup configure -p --ld-options="-arch i386" --gcc-option=-m32 $ ./Setup build $ sudo ./Setup install
次はHTTPのセットアップ。
$ curl -O http://hackage.haskell.org/packages/archive/HTTP/4000.0.9/HTTP-4000.0.9.tar.gz $ tar xzf HTTP-4000.0.9.tar.gz $ cd HTTP-4000.0.9 $ runhaskell Setup configure -p --ld-options="-arch i386" --gcc-option=-m32 $ runhaskell Setup build $ sudo runhaskell Setup install
そしてzlibのセットアップ。
$ curl -O http://hackage.haskell.org/packages/archive/zlib/0.5.2.0/zlib-0.5.2.0.tar.gz $ tar xzf zlib-0.5.2.0.tar.gz $ cd zlib-0.5.2.0 $ runhaskell Setup configure -p --ld-options="-arch i386" --gcc-option=-m32 $ runhaskell Setup build $ runhaskell Setup install
準備が終わったのでcabal-installをHackageからダウンロード。
$ curl -O http://hackage.haskell.org/packages/archive/cabal-install/0.8.0/cabal-install-0.8.0.tar.gz $ tar xzf cabal-install-0.8.0.tar.gz $ cd cabal-install-0.8.0 $ runhaskell Setup configure -p --ld-options="-arch i386" --gcc-option=-m32 $ runhaskell Setup build $ runhaskell Setup install
おまけ
最初は「こんなん余裕だろ」と思ってたんですが、cabal-installをbootstrap.shでインストールすると、cabalを起動したときに Codec.Compression.Zlib のエラーが出てしまいます。