Hatena::ブログ(Diary)

じゃばらの手記

2012-01-16

MacでHerokuにYesodを(GHC/cabal-install導入編)

前回Ubuntu on VirtualBox環境を作成したので、次はGHC

更にYesod開発に必須のcabal-installもインストールしてしまいます。

GHCインストール

ここからはUbuntu on VirtualBoxでの作業。

まず依存ライブラリインストール

sudo apt-get install libreadline5 libgmpxx4ldbl libgmp3c2 libgmp3-dev

次にGHCのダウロードページからGHCバイナリダウンロードしてきましょう。

バージョンは、今回は7.0.4を採用。

ファイル名はghc-7.0.4-x86_64-unknown-linux.tar.bz2となります。

32bit版とまちがわないように気を付けて下さい。

ダウンロードしたファイルを解凍

tar xvf ghc-7.0.4-x86_64-unknown-linux.tar.bz2

解凍したディレクトリに降りていってインストール

cd ghc-7.0.4
>||
./configure
sudo make install

ここでこんな↓エラーが出るかもしれません。

make -r --no-print-directory -f ghc.mk install BINDIST=YES NO_INCLUDE_DEPS=YES
mk/config.mk:28: /home/****//mk/project.mk: No such file or directory
mk/config.mk:210: /home/****//mk/install.mk: No such file or directory
ghc.mk:128: *** Please run ./configure first.  中止.
make: *** [install] エラー 2

project.mkとinstall.mkがホームディレクトリの下にないって言っています。

カレントの下のmkディレクトリにはあるので、無理矢理コピーするとうまくいきました。

mkdir ~/mk
cp ./mk/project.mk ~/mk
cp ./mk/install.mk ~/mk

cabal-installをインストール

cabal-installをインストールしますが、先に依存ライブラリインストールする必要があります。

依存ライブラリの中にはapt-getでインストールすることが出来るものもありますが、GHC6まで一緒にインストールされてしまうようなので、HackageDBから一つ一つダウンロードしてインストールすることにしました。

インストールしたライブラリは以下の通りです。入れ子は依存関係を示しています。

mtlはparsecのインストールにも必要なので、下からインストールして行くとOKです。

以上のライブラリインストールしたら、cabal-installをインストールします。

Hackageからcabal-installのインストールファイルをダウンロードします。

バージョンは今回は0.10.2。

ん?0始まりっちゃーなにごと?

なおcabal-installのインストールの途中、Ubuntu on VirtualBoxが不安定になり再起動せざるを得なくなる、という現象が起きました。

これはゲストOSのメモリを増やしたら解消しました。

今回はここまで。

次はYesodのインストールです。

メモ・HackageDBからダウンロードしたライブラリインストール手順

以下の5手。

tar xvf HackageDBからダウンロードしたファイル
cd 解凍したディレクトリ
sudo runghc Setup.hs configure

Setup.hsはSetup.lhsのこともあります。

sudo runghc Setup.hs build
sudo runghc Setup.hs install