MacでHerokuにYesodを(Yesod導入・アプリビルド編)
前回cabal-installがインストール出来たので、いよいよYesodのインストール、更にアプリのビルドまで行ってみましょう!
相変わらずUbuntu on VirtualBoxで作業します。
yesodのインストール
cabal-installがインストール出来たので、Yesodはこれを使って楽にインストールしてしまいましょう。
参考ページは本家のGetting Started with Yesod。
sudo cabal update
sudo cabal install Cabal cabal-install yesod
アプリの作成
yesodコマンドでアプリの雛形を自動生成します。
雛形とは言いましたが、今回はHerokuにテストで載せる実行ファイルがほしいだけなので何も手を加えないです。
yesod init
アプリ名はfirst-herokuにしました。
もしyesodコマンドがPATHの通っていない場所にある場合はパスのが必要です。私の環境では必要でした。
~/.cabal/bin/yesod init
ビルドに必要な依存ライブラリのインストール
実はYesodで作ったアプリをビルドするには、まだライブラリが足りません。
cabal-installで楽しようと思っても、依存を解決出来ずにインストール出来ません。
仕方がないのでcabal-installに頼らず、HackageDBからダウンロードしてきてインストールします。
インストールしたライブラリは以下。入れ子は依存関係を示しています。
- language-javascript-0.4.5
- utf8-light-0.4.0.1
- happy-1.18.8
- alex-3.0.1
- QuickCheck-2.4.2
下の方からインストールするとうまくいきます。
アプリのビルド
いよいよビルドです。
cd first-heroku
sudo cabal install
ここでのcabalコマンドにはsudoを付ける必要があります。
Yesodアプリのビルドにはまだ足りないライブラリがあって、cabal installコマンドはこれらのライブラリをインストールしようとするのですが、このときにルート権限が必要なのです。
2つ目以降のYesodアプリの場合は、sudoは必須ではありません。
ずらずらっとコンソールにログが出て
... Linking dist/build/first-heroku/first-heroku ... Installing executable(s) in /home/****/.cabal/bin
おお!!成功!!
実行してみよう・・・ドキドキ・・・
sudo ~/.cabal/bin/yesod devel
とやってコンソールに
Devel application launched, listening on port 3000"
と表示されたら
http://localhost:3000/
にアクセスします。
・・・おおおっっっ!!
ついにやった!!
しかしまだ安心出来ません。
目標はあくまでHerokuに実行ファイルを公開すること。
これは次のエントリにて。