Old/sampou.org/HowTo_ProgrammingEnviornment_Ubuntu8.10

HowTo_ProgrammingEnviornment_Ubuntu8.10

HowTo:ProgrammingEnviornment:Ubuntu8.10


以下は 2009/02/04 16:03:25 JST 現在の情報である。

Ubuntu 8.10 (i386版)上にHaskellプログラミング環境を作る

ghc-6.10.1のインストール

ubuntuのパッケージにghc6というのがあるのだが,最新のリリースバージョンではないとか,最小構成になっているので少し使いにくいとか,いろいろ不満がでる.それで,コンパイル済のバイナリがはいった,tarballからインストールする.これは非常に簡単です.

libedit2版のtarballを取得

いきなりダウンロードするならwgetで

  $ wget http://www.haskell.org/ghc/dist/6.10.1/ghc-6.10.1-i386-unknown-linux-libedit2.tar.bz2

展開,移動

  $ tar xf ghc-6.10.1-i386-unknown-linux-libedit2.tar.bz2
  $ cd ghc-6.10.1

configure と make install

/usr/local配下へのインストールでよいなら,引数なしで configure

  $ ./configure
  $ sudo make install

本体のインストールはこれで終り

バージョンチェック

インストールが終了したら一応確認

  $ ghc -V
  The Glorious Glasgow Haskell Compilation System, version 6.10.1

これでOK

すぐにも使いそうなライブラリの開発用パッケージ

libgmp3-dev 多倍長整数演算ライブラリ

  $ sudo apt-get install libgmp3-dev

zlib1g-dev データ圧縮伸長ライブラリ

  $ sudo apt-get install zlib1g-dev

libedit-dev 行編集用ライブラリ

  $ sudo apt-get install libedit-dev

libcurl4-gnutls-dev curl関連ライブラリ.darcsの構築インストールに必要

  $ sudo apt-get install libcurl4-gnutls-dev

Haskellのパッケージツール.

cabalコマンドはaptシステムに似たツールで,Haskellの種々のパッケージのインストールなどに便利.これをインストールしておくと,cabal install <package> でパッケージがインストールできる.このときHaskellのライブラリについてだけだが,依存関係をチェックして,必要なパッケージをダウンロードしてインストールすることまでやってくれる.ぜひインストールする.

  $ wget http://hackage.haskell.org/packages/archive/cabal-install/0.6.0/cabal-install-0.6.0.tar.gz
  $ tar xf cabal-install-0.6.0.tar.gz
  $ cd cabal-install-0.6.0
  $ sh bootstrap.sh

cabalおよび,cabalコマンドを使ってインストールされるライブラリ,実行ファイルはデフォルトでは $HOME/.cabal/ 配下に置かれる.そこの bin/ へ PATH を通しておく.

  $ export PATH=$HOME/.cabal/bin:$PATH

cabalはHackage Databaseの情報を取得する.これを更新しておく.

  $ cabal update

ローカルにインストールしたパッケージを最新の状態にしておきたければ,cabal upgrade を使えばよい.

  $ cabal upgrade

ドキュメント作成関連

hscolour:Haskellのソースコードを色付きのHTMLにしてくれるので,Hack用ドキュメントを作るときなどに便利

  $ cabal install hscolour

分散バージョン管理システム

Haskeller なら darcs にきまっとる ;)

  $ cabal install darcs

日本語

UTF8限定だけど,とりあえずこれをインストールしておこう.それ以外のエンコードについては iconv というパッケージを使うという手もあるかも.

  $ cabal install utf8-string

Emacs

Haskellで開発するならエディタはEmacs + haskell-modeがよいと思う.で,nobsun の好みにより,emacs-snapshot をインストールする.

  $ sudo apt-get install emacs-snapshot emacs-snapshot-el

haskell-mode

Ubuntu 8.10 には haskell-mode というパッケージがあるんだが,ふつうにこれを入れようとすると,ghc6 を入れられてしまう.そこで tarball からインストールする.

  $ cd lib/elisp
  $ wget http://www.iro.umontreal.ca/~monnier/elisp/haskell-mode.tar.gz
  $ tar xvf haskell-mode.tar.gz

/lib/elisp 配下に展開されたとして,~/.emacs の設定は

  (load "~/lib/elisp/haskell-mode-2.4/haskell-site-file")
  (add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
  (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
  (add-hook 'haskell-mode-hook 'turn-on-haskell-indent)

とする.

ghci-haskeline

編集する分にはhaskell-modeは快適なんだが,バッファ内でのghciセッションの時に妙な ^J が入っておもしろくない.これは libedit の問題らしい.そこで,Emacsのバッファ内では,ghci-haskeline を使うようにする.

  $ cabal install ghci-haskeline

で .emacs に以下を追加する

  (setq haskell-program-name "~/.cabal/bin/ghci-haskeline")

これで ^J は駆逐できるはず.


以下は 2008/09/22 14:02:44 JST 現在の情報である。

Ubuntu 8.04 上にHaskellプログラミング環境を作る

Ubuntu 8.04 をインストールした直後の状態からHaskellプログラミング環境を作る。 Ubuntu には ghc6 というパッケージおよびghc関連のパッケージが数多く用意されて いるが、これらはどれも最新ではない。自分でいろいろなパッケージを持ってきて、 自分でコンパイルして使いたいので、ghc 関連のものはUbuntuパッケージを使わない 方針でいく。それ以外のツールは最新を追いかけることはないので、 Ubuntuのパッケージを使う。

コンパイラのインストール

Glasgow Haskell Compiler を使う

libc6

まず最初は、ghc-6.8.3 をバイナリ tarball からインストールするのであるが、 libc ヘッダファイルなどがなかったりするので、ghc-6.8.3 のインストール前の configure スクリプトが途中でこける。なにはともあれ、libc6-dev

$ sudo apt-get install libc6-dev

patch

2008/11/12現在ではHEADのビルドにpatchが使われるようなのでインストールしておく。

$ sudo apt-get install patch

ghc 6.8.3 のインストール

最初はi386-Linux汎用版のバイナリをインストールする(Ubuntuのghc6パッケージは使わない)

$ wget http://www.haskell.org/ghc/dist/6.8.3/ghc-6.8.3-i386-unknown-linux.tar.bz2
$ cd ghc-6.8.3
$ ./configure
$ sudo make install

開発用ツールおよびライブラリ群

GNUの開発ツール群

$ sudo apt-get install autoconf
$ sudo apt-get install automake
$ sudo apt-get install libtool 

ドキュメント系のライブラリ群

$ sudo apt-get install zlib1g-dev
$ sudo apt-get install curl
$ sudo apt-get install docbook-xsl

分散バージョン管理システム

darcs を使うことが多い(git も最近使われつつある)。 最新のdarcsをインストールする(Ubuntuのdarcsパッケージは使わない)

darcs-2.1.0 をインストール(2008/10/12 13:44:45 JSTバージョンを変更)

$ wget http://darcs.net/darcs-2.1.0.tar.gz
$ cd darcs-2.1.0
$ autoconf
$ ./configure
$ make
$ sudo make install

字句解析器生成器 Alex

最新のAlexをソースからビルドする(Ubuntu の alex パッケージは使わない)

alex 2.2

$ wget http://www.haskell.org/alex/dist/2.2/alex-2.2.tar.gz
$ tar xvf alex-2.2.tar.gz
$ cd alex-2.2
$ runghc Setup configure
$ runghc Setup build
$ sudo runghc Setup install

構文解析器生成器 Happy

最新のHappyをソースからビルドする(Ubuntu の happy パッケージは使わない)

happy 1.17

$ wget http://haskell.org/happy/dist/1.17/happy-1.17.tar.gz
$ tar xvf happy-1.17.tar.gz 
$ cd happy-1.17
$ runghc Setup configure
$ runghc Setup build
$ sudo runghc Setup install

エディタ

Emacs と haskell-mode を使う

Emacs 23

nobsun の単なる好みにより Emacs 22 ではなく、Emacs 23 を使うことにする。

$ sudo apt-get install emacs-snapshot
$ sudo apt-get install emacs-snapshot-el

haskell-mode

Emacs を使ってプログラムを書くなら必須でしょう。

$ sudo apt-get install haskell-mode

.emacs の設定例。

(append auto-mode-alist
        '(("\\.hs$" . 'haskell-mode)
          ("\\.hi$" . 'haskell-mode)
          ("\\.lhs$" . 'literate-haskell-mode))))

(autoload 'haskell-mode "haskell-mode"
  "Majour mode for editing Haskell scripts." t)
(autoload 'literate-haskell-mode "haskell-mode"
  "Majour mode for editing literate Haskell scripts." t)

(add-hook 'haskell-mode-hook 'turn-on-haskell-decl-scan)
(add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode)
(add-hook 'haskell-mode-hook 'turn-on-haskell-indent)
(add-hook 'haskell-mode-hook 'turn-on-haskell-ghci)

(setq haskell-literate-default 'latex)
(setq haskell-doc-idle-delay 0)

Last modified : 2009/08/05 22:44:31 JST