基本的には以下のページを参考にした。
http://twdkz.wordpress.com/2011/12/21/installing-ghc-7-0-3-and-the-haskell-platform-on-rhel-5-6/
ダウンロードするもの
- ghc-6.8.3-x86_64-unknown-linux.tar.bz2
- ghc-6.10.4-src.tar.bz2
- ghc-7.0.3-src.tar.bz2
- haskell-platform-2011.2.0.1.tar.gz
それぞれ、GHCのページとHaskellのページから取ってきた。
Haskellの2011.2.0.1を入れるにはghc-7.0.3が必要で、ghc-7.0.3をソースからインストールするにはghc-6.10.4が、ghc-6.10.4にはghc-6.8.3が必要であるということで順番にいれていく。ghc-6.8.3ならglibcなどバージョンの関係でなのか、Linuxバイナリ版をインストールができるのでそれを使っている。ちなみにghc-7.0.3のインストールには新しいバージョンのgccが必要らしい。私の環境では幸いgcc4.1.2だけでなく、gcc4.4.1が入っていたのでそれをつかった。ghc-6.8.3
SOFTWARE=$HOME/.software tar xvf ghc-6.8.3-x86_64-unknown-linux.tar.bz2 cd ghc-6.8.3 CC=gcc44 ./configure --prefix=$SOFTWARE/ghc-6.8.3 make install特に問題なくインストールできた。
ghc-6.10.4
ビルドの前に先ほどインストールしたghc-6.8.3のbinにパスを通してからインストール。export PATH=$SOFTWARE/ghc-6.8.3/bin:$PATH cd ../ tar xvf ghc-6.10.4-src.tar.bz2 cd ghc-6.10.4 ./configure --prefix=$SOFTWARE/ghc-6.10.4 --with-gcc=gcc44 make && make installmakeに失敗。bfd.hのところで、#error config.h must be included before this header みたいなエラーがでた。Stackoverflowの投稿によると、autotools?を使っていないためPACKAGEとPACKAGE_NAMEがdefineされておらず怒られているっぽい。とりあえずの解決策として、怒られていたrts/Printer.cの先頭部分に
#define PACKAGE 1 #define PACKAGE_NAME 1を入れて再度makeしたらコンパイルが通った。
ghc-7.0.3
export PATH=$SOFTWARE/ghc-6.10.4/bin:$PATH cd ../ tar xvf ghc-7.0.3-src.tar.bz2 cd ghc-7.0.3 ./configure --with-gcc=gcc44 make && make install先ほどと同じbfd.hでこけるので同じ対応をしてビルド成功。
hasklell-platform-2011.2.0.1
export PATH=$SOFTWARE/ghc-7.0.3/bin:$PATH cd ../ tar xvf haskell-platform-2011.2.0.1.tar.gz cd haskell-platform-2011.2.0.1 ./configure --prefix=$SOFTWARE/haskell-platform --with-gcc=gcc44 make make install問題なく成功。あとは.bashrcなどに以下のようなものを追加すれば良い。インストールの時に使ったファイルや古いGHCは消しても良い(と思う)。
SOFTWARE=$HOME/.software export PATH=$SOFTWARE/haskell-platform/bin:$SOFTWARE/ghc-7.0.3/bin:$PATH
Cabalが動かん
cabal updateするとcabal-installの更新をしろと言われる。cabal install cabal-install をしてインストールしようとするが怒られる。couldn't read caba file xxxx.cabal的なことを言われる。stackoverflowのRichard曰く、cabalファイルのフォーマットが変わってしまい、古いcabalで読めないとのこと。新しいCabalをhttp://hackage.haskell.org/packages/archive/cabal-install/1.16.0.2/cabal-install-1.16.0.2.tar.gzからダウンロードしてREADMEの指示に従いインストールすることで解決ができるとのこと。
wget http://hackage.haskell.org/packages/archive/cabal-install/1.16.0.2/cabal-install-1.16.0.2.tar.gz tar xvf cabal-install-1.16.0.2.tar.gz cd cabal-install-1.16.0.2 chmod +x bootstrap.sh ./bootstrap.sh$HOME/.cabal/binにバイナリができるので、忘れずにパスを通す設定をする。
0 件のコメント:
コメントを投稿