りんごがでている

何か役に立つことを書きます

Yesodチュートリアルの蛇足(1)

YesodというHaskell製のフレームワークがある。
近々O'ReillyからYesod本(Haskell and Yesod)が出るらしいので、その前にちょっと触ってみようと思ったのでその記録を。

参考にしたチュートリアルは、
Haskell web programming
冒頭の紹介によると、膨大なリクエストをさばく能力はnode.jsなんかに比べても圧倒的に性能がいいらしい。
YesodでEchoサーバからデータベースを使ったBlogアプリケーションまで説明している。
このチュートリアルに沿ってやっていこう。何回かに分けてポストするかも!

前準備

この2つがとりあえず必要。ここから手に入るのでインストール。
私が試したバージョンはGHCが7.0.4 Haskell Platformが4.0.0だった。

パッケージのインストールに必要なので、cabalが使えるようにパスを通そう。
デフォルトでは$HOME/.cabal/binにある様子。

% export PATH=~/.cabal/bin:$PATH

そして、Yesodのインストール。
これもcabalを通して行う。

% cabal update
% cabal install yesod cabal-dev

プロジェクトを作成

% yesod init

で対話的にプロジェクトの初期設定が可能。
名前とか、Foundationとか、何のデータベースを使うかとかを聞いてくる。
選択肢にあったDBは、

今回はサンプルだし依存関係が面倒でないSQLiteを使う。

つぎにプロジェクトのコンパイルをする
cabal-devは開発用に今のプロジェクトに限定してツールをビルドしてくれるそう。
yesodは--devオプションをつければ開発用サーバが立ち上がる。

% cabal-dev install && yesod --dev devel

が、このときlanguage-javascriptパッケージが正しくビルドできない問題が発生。
どうやらlanguage-javascriptはalexというパッケージのバージョンが3.0以上じゃないとダメらしい。
alexのバージョンが2.4だったので、アップデート。これもcabalから。

% cabal install alex

現在のcabalではupgrade機能が使えないようなので、installをした。
これでコンパイルができる。結構時間かかるし、特に終わっても何も出ないのでアレ?って感じになるが、
http://localhost:3000
にアクセスすると、デフォルトのメッセージが見られる。
f:id:bicycle1885:20120208043819p:plain
こんな感じ。

ふう、眠いのでまた次回。