大まかな手順
※実際に試した手順とは異なる(後述)
- Windows Subsystem for Linuxをインストール
- bashからstackをインストール
- stack ghci
Windows Subsystem for Linuxをインストール
「 [Windows Subsystem for Linuxをインストールしてみよう!][1]」の手順通り。
以降は全てbash
上の操作(インストールしたUbuntuを起動)。
[1]:https://qiita.com/Aruneko/items/c79810b0b015bebf30bb
/etc/apt/sources.list
の編集はやめておく
/etc/apt/sources.list
を編集するとハマった。
haskell-platform
がインストールできなかった。
最低限sed
する前にバックアップをとっておく。
$ sudo apt-get install haskell-platform
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package haskell-platform
デフォルトの/etc/apt/sources.list
では無事インストールできたが、最終的にapt-get purge
した(後述)。
stackのインストール
結論から書くとこれ
curl -sSL https://get.haskellstack.org/ | sh
(おまけ)haskell-platformをインストールしたけど、ghciもstackも入ってない
※(追記)ghciは実際には入っていて、単なるtypoで見つからなかった可能性大
sudo apt-get install haskell-platform
でhaskell-platform
をインストールした。
ghc
もrunghc
も動いた。
しかし..
$ stack ghci
Command 'stack' not found, but can be installed with:
sudo apt install haskell-stack
$ gchi
Command 'gchi' not found, did you mean:
..
※(追記)typo [正]ghci [誤]gchi
..さようなら、haskell-platform
。
sudo apt-get purge haskell-platform
apt-getでインストールしたstackが動かない
$ sudo apt-get install haskell-stack
..
$ stack ghci
Writing implicit global project config file to: /home/hugin/.stack/global-project/stack.yaml
Note: You can change the snapshot via the resolver field there.
Using latest snapshot resolver: lts-12.10
Downloaded lts-12.10 build plan.
AesonException "Error in $.packages.cassava.constraints.flags['bytestring--lt-0_10_4']: Invalid flag name: \"bytestring--lt-0_10_4\""
「AesonException Invalid flag name: "bytestring--lt-0_10_4""」に解決方法が。
With 1.7.1, you should no longer get the AesonException
I have uninstalled the system'shaskell-stack
and the one installed locally. I've runcurl -sSL https://get.haskellstack.org/ | sh
and now all is fine. Thank you.
haskell-stackをアンインストールせずに実行して失敗したので、下のコマンドを実行して無理やりインストールした(非推奨)。
curl -sSL https://get.haskellstack.org/ | sh -s - -f
stack ghci
stack ghci
ghci
がインストールされてない場合はインストールされる。
インストール完了後、ghci
が起動する。
Prelude> :q
で終了する。
ghciの起動も動作もサクサク
以下のような記事があって心配したが、実際はサクサク動いている。
SSDの恩恵か、単に最新の環境では解消しているのか。
$ time stack ghc -- -e 'print "Java + You"'
"Java + You"
real 0m0.315s
user 0m0.219s
sys 0m0.172s
ghci(Haskellの対話実行環境)やビルドが異常に遅いのです。下記の簡単なワンライナー実行するだけで6秒もかかります。
― Haskell入門しようとして環境構築で失敗。
ghcやghciやrunghcの起動にいちいち2分ぐらいかかる。
― [Windows Subsystem for Linuxをインストールしてみよう!][1]
実際の手順
本記事の手順は、実際に実施した手順と異なるため失敗するかもしれない。
このように迷走したことにより、たまたまうまく行っているコマンドがあるかもしれない。
- Windows Subsystem for Linuxをインストール
- sudo apt-get install haskell-platform
- sudo apt-get install haskell-stack
- curl -sSL https://get.haskellstack.org/ | sh -s - -f
- sudo apt-get purge haskell-platform