Haskell勉強会準備室0(環境構築周りの変更)

環境構築(再)

昨日の勉強会では残念ながら時間切れで、自分の想定した環境を構築できませんでした。
途中でバグが出ているのが解消できなかったです。
もしかするとですが、インストールする順番が微妙に変わると、
ダメなのかも知れません。確かに家でやっていた時も正確に同じ手順でないとダメでした。
その辺り、進行役としてうまく進められず反省しています。
勉強会では、VSCodeを使い慣れている方ばかりでした。
上で失敗しているのもあるので、基本的にはVSCode + HIE で勉強会を進めることにします。VSCodeだとこういうの(https://hackage.haskell.org/package/phoityne-vscode)もあるんですね。試してみたくなりました。
また、環境構築でコケて勉強会が進まないのも面白くないので、
GUI(Gtk)部分自然言語処理前処理に関しては、勉強会の会を重ねる際に、少しずつ整えていくことにします。
Gtkよりも具合の良いGUIがあればそちらにすることも検討します。そのあたりは柔軟に進めていきます。

なので、次回までに以下の環境を整えておいてください。 下の説明はプログラミング初心者向けでないので、後で詳細なやり方を別途掲載します。

1. Haskell Stack

2. HIE – Haskell IDE Engine

ビルドに結構時間がかかるので、お家でやっておく必要があります。

HIEだけはハマった部分があるので、解説しておきます。

HIEはGHC(Haskellのコンパイラです)とバージョンを合わせておく必要があります。例えば、以下はstack buildというコマンドを叩いたときの結果ですが、ghc-8.6.5みたいのが見えていると思います。

この8.6.5に合わせる形でHIEをインストールする必要があります。公式の中段あたりに書かれています。具体的には、以下のコマンドをうってくださいとのことです。バージョンが違えば8.6.5の箇所が変わってきます。

stack ./install.hs hie-8.6.5
stack ./install.hs data

さらに以下はWindowsの方向けです。
情報のソースはこのページです。
結論から言うと、上記コマンド、すなわち

stack ./install.hs hie-8.6.5

のようなコマンドを実行する前に、

chcp 65001

を実行しておいてください。
このたぐいのエラーは、HaskellでWindowsで日本語を扱う場合にもよく出てくるエラーです。
このページを見てください。

3. エディタ – VSCode

拡張Haskell Language Server
も入れておいてください。 更にこのページ(https://github.com/haskell/haskell-ide-engine/issues/1616)を参考に、hie.yamlというファイルを自分でつくってプロジェクトのルートに入れておいてください。

備考(Windowsで先日バグっていた方へ)

お手数をお掛けしますが、以下の2つの対応をおねがいします。

1. Stackのアンインストール

Stackをアンインストールしてください。
これで、Stack関連がPath含め全て消えるはずなのですが、
実はC:\srというディレクトリにStack関連のファイルが残っています。
こちらも削除してください。

2. msys2のアンインストール

更にmsys2もアンインストールし、先日設定した、環境変数周りも消してください(これはGtk2をインストールするためのものでした。問題の棚上げになってしまいますが、GUIが出てきた際に再検討します。開発環境を揃える目的でdockerを使う等の案が出ています)。
以下の3つに相当するものです。

PATH=C:\msys64\mingw64\bin;C:\msys64\usr\bin;%PATH%

PKG_CONFIG_PATH=C:\msys64\mingw64\lib\pkgconfig

XDG_DATA_DIRS=C:\msys64\mingw64\share

その後で上の1.Haskell Stack、 2.HIE、 3.VSCodeのインストールを再度行ってください。
お手数をお掛けしますが、よろしくお願いします。

(※1)

すごい人がdockerで環境構築をする試みをしてくれてます。現状は実験的試みらしく、上の案が今のところ良さそうですが、期待しています。

また、vagrantで整えるのはどうかというお便りもいただきました。こちらも挑戦してみます。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする