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から一つ一つダウンロードしてインストールすることにしました。
インストールしたライブラリは以下の通りです。入れ子は依存関係を示しています。
- HTTP-4000.2.2
- network-2.3.0.8
- parsec-3.1.2
- text-0.11.1.12
- deepseq-1.2.0.1
- text-0.11.1.12
- parsec-3.1.2
- mtl-2.0.1.0
- transformers-0.2.2.0
- network-2.3.0.8
- zlib-0.5.3.1
- sudo apt-get install zlib1g-dev (Haskellのライブラリにあらず)
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