UbuntuにHaskell環境を構築するメモ

Ubuntu18.04にhaskell-stackの環境を構築したときのメモです。

基本的に公式に書いてあるとおりなのですが、公式ドキュメント内でもあちらを見ろこちらを見ろと飛ばされることや一部つまづいた箇所があったのでメモします。


1. つまづく手順


1-1. パッケージマネージャからインストール

sudo apt install haskell-stack

問題なくインストールされるはずです。


1-2. stackのアップグレード

公式ドキュメント内に「ディストリビューションのStackはバージョンが遅れがちだからインストール後に更新することをオススメする」というようなことが書かれています。

なのでstack upgrade --binary-onlyを実行しstackをアップグレードします。


1-3. stackのセットアップ

アップグレード完了後にstack setupを実行します。

AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""

おやおやおや〜?

こんな感じのエラーが出ると思います。

stackのリポジトリでもIssue切られていました。


2. つまづかない手順

※上記項番1の手順を試していた場合、システムのhaskell-stackはsudo apt remove haskell-stackとかで削除しておいてください


2-1. インストールスクリプトの実行

curl -sSL https://get.haskellstack.org/ | sh

または

wget -qO- https://get.haskellstack.org/ | sh

を実行します。

上記「つまづく手順」を実行してしまっているとaptで消してもゴミが残ってインストールスクリプトがWarnを吐くかもしれません。

その場合はshに-fオプションつけてあげてください。


2-2. 環境セットアップ

stackのインストールが完了したらセットアップを行います。

$ stack setup

環境のセットアップが行われますが諸々ダウンロード等も行うので環境によっては時間がかかります。


2-3. インストール後のちょい設定

パスが通っていない場合や、stack経由なのでコマンドがstack ghcになるなどがあります。

そのため少し設定をしました。


.bashrc

# set PATH for stack command(haskell-stack).

PATH="$HOME/.local/bin:$PATH"

# set stack ghc aliases
alias ghci='stack ghci'
alias ghc='stack ghc --'
alias runghc='stack runghc --'


以上です。