12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Haskell を入れ直してYesod をインストールする

Last updated at Posted at 2015-04-15

既出の記事をまとめただけではあるものの、初心者がそれぞれの記事単体で進めるとハマることもあったのでメモとして残しておく。もし次に書いた要件と同じ境遇の方がいれば、役に立つのではないか。

具体的な要件

  1. 既にインストールしているHaskell Platform を入れ直して
  2. Stackage を活用して依存地獄を回避したい
  3. Stackage のバージョンごとに開発を進める可能性もあるのでそれを考慮して
  4. Yesod をインストールしたい

Haskell Platform のアンインストール

Haskell Platform の利用は控えた方が良いという説明がある。
Wht not Haskell Platform?

  • On Windows, it does not provide a complete environment (missing MSYS).
  • By placing a large number of packages in the global package database, Haskell Platform installations are more easily corrupted.
  • The choice of package versions conflicts with the needs of many commonly used packages.
  • Some of the package versions included with the platform have known and severe bugs, and cannot be reliably upgraded.

ということでHaskell を触り始めたときには何も考えずにHaskell Platform を導入したので、一旦アンインストールする。

Haskell Platform for Mac OS X
Haskell Platformをアンインストールして綺麗な環境を取り戻す

Stackage の活用と、 Haskell の再インストール

Stackage
LTS Haskell 2.3, GHC 7.8.4
Haskell for Mac OSX

このメモを書いている時点では、LTS 2. 3のバージョンとなっていてGHC 7.8.4 を使うように指示があるので、そのバージョンのビルドをダウンロードする。落とした.appファイルを実行すると、チェックリスト的な画面が表示されて次の状況を教えてくれるので適宜対処する。

  • 環境変数の編集の仕方
  • Xcode がインストールされているか
  • 実行環境 ( .appファイル以下 ) が一時フォルダなどに置かれていないか
  • ghc コマンドにパスが通っているかどうか

Sandbox と Stackage (LTS Haskell)を組み合わせて使う

この記事にとても詳しく書いてある。
cabal sandbox + LTS Haskell

ポイントは、

Stackage のバージョンごとに sandbox を作り、共有すれば良い

というところだ。

Yesod のインストール

ここまでの準備が終わっていれば、インストールは 一直線 にできる。公式サイトにかいてある通りに進める。

終わりに

本件にはハマった時間も含めて5時間ほどかかった。何がどうハマったかというと、詳しくは忘れてしまったのだが

  • cabal install の使い方
  • GHCの最新版(7.10.1)は利用できない
  • sandbox化するタイミング

といったあたりだろうか。中でも cabal install については、空のプロジェクトフォルダでは実行できなくて、どうすればよいか迷った。.cabal ファイルが無い状態ではこのコマンドは使えないので、今回のケースではYesodプロジェクトを作ってから実行する必要がある。

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?