2014年10月現在のHaskell環境構築方法

とりあえずチャットで教えてもらったのを全部貼り付け

xuwei_k
2014年現在でも基本的にこの方法 http://maoe.hatenadiary.jp/entry/2013/08/16/224031 有用、という認識でいいんですかね?上級者だろうか初心者だろうが、もう最近はHaskell Platform使わずにghcやcabalはそれぞれ直接インストールして、 (容量とか気にしなければ)毎回必ずcabal sandbox使えば依存地獄にも陥らずに済むのでそれがベスト、という認識で合ってます?

ruicc
hibinoさんは基本ライブラリのバージョン固定したいからPlatform欲しいって言ってましたが、cabal-sandboxとcabal-freezeが入ってからplatform無くても良いという認識に変わりつつある様ですね(cabal>=1.20).
僕はそのエントリはまだ有用だと思います。
cabal sandbox init --sandbox=
とするとdirectory指定出来るので、sandboxはある程度まとめるといいと思います。

xuwei_k
なるほど、ありがとうございます

kazu
cabal が入っているなら、GHC だけ入れればいいです。
本当に最初のインストールであれば、GHC には cabal が付いていないので、HP の方が簡単だと思います。
依存地獄に陥った場合のみ、sandbox を使えばいいと思いますよ。その方が、時間も要領も節約できます。
「依存地獄に陥る」というのは、"cabal install" しようとして、無理って言われた場合ということです。
昔の cabal は、いきなり上書きして全滅させていましたが、現在の cabal は何もせずに止まります。その場合に、sandbox を使うといいでしょう。


久しぶりに真面目にHaskellやろうとしたら、GHC7.4?とかのある程度古めのやつが入ってたので、一旦GHCとかCabalとか全部消して新しいの入れました。
で、上記のような認識だったので、Haskell platform入れずに、コレ書いてる時点で最新であろうcabal 1.20.0.3とGHC 7.8.3だけ入れてみました。

たしかに、(仕組み詳しく把握してないけど) sandboxだと依存絶対に壊れない?みたいで安心感ありますが、大きいライブラリだと、毎回sandbox使うと200とか300MBくらい消費とかありえるので、ある程度共通するとか、依存地獄に陥った場合のみsandbox使うという運用がいいんですかね