Preface

一年以上も何も書いていないわけですが、最近Haskellを勉強中なので、久しぶりに書いてみようと思います。

家ではMac、職場ではWindows、サーバはFreeBSDUbuntuを愛用しているわけですが、何を間違えたか初期費用無料キャンペーンなんてやっていたお名前.comのVPSを契約しちゃったので、そこにとりあえずHaskellの開発環境を入れてみようと思います。

Recipe

とりあえず、Haskellデファクトな実装であるGHCとパッケージ管理システムCabal、それから開発に必要となる最低限のライブラリは入れておきたいので、お手軽なHaskell Platformを入れることにします。インストール先の環境は次の通りです。

Server: CentOS 5.5 (お名前.com レンタルサーバ VPS-01プラン)

CentOSなので適当なyumリポジトリからインストールするのもアリですが(Fedoraリポジトリにはhaskell-platformがあるっぽい)、ここは本家からダウンロードしましょう。

http://hackage.haskell.org/platform/linux.html

上に書いたとおり、Fedoraにはパッケージがあるようですが今回はコンパイルすることにします。

# wget http://hackage.haskell.org/platform/2010.2.0.0/haskell-platform-2010.2.0.0.tar.gz

早速展開して、Haskell Platformのインストールをしたいところですが、Build from sourceの項目を見ると次のよなパラグラフがあります。

You need GHC 6.12.3 installed before building the platform. You can get this from your distro or you can get a GHC 6.12.3 generic binary.

Haskell PlatformをコンパイルするにはGHCが必要となるため、GHC6.12.3のバイナリを先にインストールしておく必要があるようです。

GHCの本家から最新安定版をインストールしましょう。
下のURLからCurrent Stable Releaseを選択し、Binary Packagesから自分の環境にあったバイナリパッケージを選択しましょう。

http://www.haskell.org/ghc/download.html

今回は64bitのCentOSなので、Linux (x86_64)を選択します。

# wget http://darcs.haskell.org/download/dist/6.12.3/ghc-6.12.3-x86_64-unknown-linux-n.tar.bz2

ダウンロードが終わったら展開します。

# tar xvfj ghc-6.12.3-x86_64-unknown-linux-n.tar.bz2

展開されたディレクトリに移動し、configureでお好みの構成にしてください。
(ここではインストール先のみ指定しています)

# cd ghc-6.12.3
# ./configure --prefix=/usr/local/haskell/ghc/6.12.3

問題なく終了したら、インストールをしましょう。

# make install

インストールが完了したら、パスを通して無事にインストールされたかを確認します。
(パスが通っている場所にインストールした場合は不要です)

# export PATH=/usr/local/haskell/ghc/6.12.3/bin:$PATH
# ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.12.3

無事にインストールが完了しました。処理系に触るだけであれば、ここまでで十分です。
続いて、本題であるHaskell Platformのインストールにとりかかります。
先程Haskell Platformをダウンロードしたディレクトリに移動し、アーカイブを展開します。

# tar xvfz haskell-platform-2010.2.0.0.tar.gz

展開したディレクトリに入り、ファイルの確認をしましょう。

# cd haskell-platform-2010.2.0.0
# ls
Makefile  aclocal.m4  autom4te.cache  configure  configure.ac  packages  scripts

configureがあるのでお好みの構成にしてください。
(ここではインストール先のみ指定しています)

# ./configure --prefix=/usr/local/haskell/haskell-platform/2010.2.0.0
...
...
...
configure: error: The OpenGL C library is required

エラーが出ました。どうやらOpenGLのライブラリが必要のようです。
CentOSOpenGL C libraryがどのパッケージなのかわからなかったので、GULTをまとめてインストールします。

# yum install freeglut-devel freeglut

もう一度configureスクリプトを実行します。

# ./configure --prefix=/usr/local/haskell/haskell-platform/2010.2.0.0
...
...
...
 **************************************************
 * Configuration completed successfully.
 *
 *   Install prefix: /usr/local/haskell/haskell-platform/2010.2.0.0
 *     Haskell packages will be registered into
 *     the global ghc package database
 *
 *   If you wish to change these settings then
 *   use --prefix= and/or --enable-user-install
 *
 * Now do "make" followed by "sudo make install"
 **************************************************

無事に完了しました。
メッセージにしたがって、makeを実行しビルドを行ないます。

# make
...
...
...
 **************************************************
 * Building Haskell Platform completed successfully.
 *
 * Now do "sudo make install"
 **************************************************

ビルドには5分程度かかりました。無事にビルドが完了したら、インストールを行ないましょう。

# make install
...
...
...
 *******************************************************
 * Installation completed successfully.
 *
 * Programs installed into:
 *   /usr/local/haskell/haskell-platform/2010.2.0.0/bin
 *
 * Now do "cabal update" to initialize the package list
 *
 * Additional packages may be found at http://hackage.haskell.org
 * or via "cabal list "
 *
 * Use "cabal install " to install additional packages
 *
 *******************************************************

インストールが無事に完了したら、パスを通してパッケージ管理システムであるcabalのアップデートを行ない、最新のパッケージリストを取得しておきましょう。

# cabal update

これでCentOS上でGHCによるHaskell開発を愉しむことができるようになります。