sci

最果て風呂

ghc と cabal-install を入れる

GHC と cabal-install をインストールしてみた

Haskell.org から下記のファイルをダウンロードする。

それぞれのファイルを展開し、GHC は go と同じように /opt 以下にインストールして /opt/ghc/bin環境変数のパスに追加。cabal-install はバイナリだったので解凍して、良くわからんけれども /opt/ghc/bin 以下にコピーしておいた。cabal update でリストを更新。

3 年前に作成した getsurei.hs を動かすために cabal install utf8-string でライブラリをインストールして実行したのだけど、文字化けをしている。何でなん?

調べてみると、最近の GHC は標準で日本語が表示(というか utf8 を使うことが)できるようになっているそうだ。

必要ないものは使わないということで、import System.IO.UTF8コメントアウトして、System.IO.UTF8.putStrLn としていた出力部分をただの putStrLn に修正。これでとりあえず runhaskell getsurei.hs で月齢を表示することができた。

cabal と cabal-install のインストールをやり直し

cabal コマンドのサイズが 15MB もあって、ぐぬぬだったのでインストールをやり直した。Cabal-1.20.0.2.tar.gz をダウンロードして

ghc -threaded --make Setup
./Setup configure --user
./Setup build
./Setup install

でインストール。その後、

cabal update
cabal install cabal-install

すると、./cabal/bin 以下に cabal の実行ファイルがインストールされる。環境変数~/.cabal/bin を追加して cabal -V で確認してみると、

> /opt/ghc/bin/cabal -V
cabal-install version 1.20.0.3
using version 1.20.0.1 of the Cabal library 
> ~/.cabal/bin/cabal -V
cabal-install version 1.20.0.3
using version 1.20.0.2 of the Cabal library

のようになっていて、後から入れが方が library のバージョンが新しい。でもバイナリのサイズが 28MB にもなってる。これじゃ当初の目論見と正反対の結果になっちゃった。