M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

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

Developing Web Applications With Haskell and Yesod

【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コードの強調表示に対応していることがわかった。
f:id:m12i:20121223115844p:plain

【7】ターミナルを起動して、カレントフォルダを上記手順で作成したフォルダに変更。runhaskell helloworld.hsというコマンドを実行。"Application launched, listening on port 3000"という出力がされたら、ブラウザでhttp://localhost:3000/にアクセスする。(Haskell PlatformのMac OS X向けの64bit版をインストールしていた場合、ブラウザでアクセスした瞬間にYesodアプリがクラッシュしてしまうらしい。すくなくともなんのエラー出力も残さずに停止してしまう。おかげでさんざん調べたあげくに32bit版のインストールからやり直すはめになった。)