Yesodチュートリアルの蛇足(1)
YesodというHaskell製のフレームワークがある。
近々O'ReillyからYesod本(Haskell and Yesod)が出るらしいので、その前にちょっと触ってみようと思ったのでその記録を。
参考にしたチュートリアルは、
Haskell web programming
冒頭の紹介によると、膨大なリクエストをさばく能力はnode.jsなんかに比べても圧倒的に性能がいいらしい。
YesodでEchoサーバからデータベースを使ったBlogアプリケーションまで説明している。
このチュートリアルに沿ってやっていこう。何回かに分けてポストするかも!
前準備
- GHC
- Haskell Platform
この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
- PostgreSQL
- MongoDB
今回はサンプルだし依存関係が面倒でない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
にアクセスすると、デフォルトのメッセージが見られる。
こんな感じ。
ふう、眠いのでまた次回。