Mac OS X 10.8上に Haskell Platform と Yesod をインストールする
"Developing Web Applications with Haskell and Yesod"に沿ってYesodプラットフォームをインストールしてみる。書籍と同内容でWebサイト版もある。とくにツールに関してはここ。
やってみてわかったこととしては以下の2点。
- Cabalを使用してYesodのインストールするにはすごく時間がかかる。環境によるのは当然だろうけど、今回は40分くらいかかった。
- Mac OS X向けのHaskell Platformは32bit版でないとYesodが動かない。…正確には動くのだけど、ブラウザでアクセスを試みた瞬間にYesodアプリが落ちる。
Developing Web Applications With Haskell and Yesod
- 作者: Michael Snoyman
- 出版社/メーカー: Oreilly & Associates Inc
- 発売日: 2012/05/04
- メディア: ペーパーバック
- クリック: 19回
- この商品を含むブログ (2件) を見る
【1】Haskell PlatformのWebサイトに行って、Mac OS向けのインストーラ(Haskell Platform 2012.4.0.0 32bit.pkg)をダウンロードする。
【2】ダウンロードしたインストーラを実行して、GHC、Cabalなどを含むHaskell Platformをインストールする。パスの設定までインストーラが面倒見てくれている。
【3】ターミナルでcabalコマンドを実行してみる(単なる確認)。パッケージリポジトリに新しいCabalのバージョンがあるからインストールしてね、的なメッセージが出ているけどとりあえず無視。
mzk-mac-air:~ mzk$ cabal ********************************************************************** === Configuration for cabal has been written to /Users/mzk/.cabal/config === Executables will be installed in: /Users/mzk/Library/Haskell/bin You may wish to place this on your PATH by adding the following line to your ~/.bash_profile: export PATH="$HOME/Library/Haskell/bin:$PATH" === When documentation is built, a master index to all documentation will be placed in: /Users/mzk/Library/Haskell/doc/index.html You may wish to bookmark that file once it gets built (after the first cabal install). ********************************************************************** Downloading the latest package list from hackage.haskell.org Note: there is a new version of cabal-install available. To upgrade, run: cabal install cabal-install cabal: no command given (try --help)
【4】以下のような注記があるのでターミナルでcabal install alexというコマンドを実行する。Alexのバージョン3がインストールされる。
One important tool you'll need to update is alex. The Haskell Platform includes version 2, while the Javascript minifier Yesod uses, hjsmin, requires version three. Be sure to cabal install alex after getting set up with the Haskell Platform, or you'll run into error messages about the language-javascript package.
(一点重要なこととして、Alexのアップデートが必要となるはずです。Haskellプラットフォームに含まれるAlexのバージョンは2ですが、Yesodが使用するJavaScriptコード圧縮ツールhjsminには、Alexのバージョン3が必要です。Haskellプラットフォームをインストールしたら、cabal install alexとコマンドを実行してください。さもないと、language-javascriptパッケージについてのエラーメッセージに遭遇するはめになるでしょう。)
【5】Yesodをインスト-ルするため、cabal install yesod-platformというコマンドを実行する。Yesodとその依存するパッケージのインストールが行われる。ソースの取得とコンパイルにかなりの時間がかかる。今回は40分くらいかかった。
【6】"Developing Web Applications with Haskell and Yesod"のサンプルアプリのコードをコピーして、helloworld.hsという名前で任意のフォルダに保存。Sublime Text 2がHaskellコードの強調表示に対応していることがわかった。
【7】ターミナルを起動して、カレントフォルダを上記手順で作成したフォルダに変更。runhaskell helloworld.hsというコマンドを実行。"Application launched, listening on port 3000"という出力がされたら、ブラウザでhttp://localhost:3000/にアクセスする。(Haskell PlatformのMac OS X向けの64bit版をインストールしていた場合、ブラウザでアクセスした瞬間にYesodアプリがクラッシュしてしまうらしい。すくなくともなんのエラー出力も残さずに停止してしまう。おかげでさんざん調べたあげくに32bit版のインストールからやり直すはめになった。)