Help us understand the problem. What is going on with this article?

Haskell開発環境をWindows 10に構築したメモ(Windows Subsystem for Linux + stack)

More than 1 year has passed since last update.

大まかな手順

※実際に試した手順とは異なる(後述)

  1. Windows Subsystem for Linuxをインストール
  2. bashからstackをインストール
  3. stack ghci

Windows Subsystem for Linuxをインストール

Windows Subsystem for Linuxをインストールしてみよう!」の手順通り。
以降は全てbash上の操作(インストールしたUbuntuを起動)。

/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をインストールした。
ghcrunghcも動いた。
しかし..

$ 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's haskell-stack and the one installed locally. I've run curl -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をインストール
  2. sudo apt-get install haskell-platform
  3. sudo apt-get install haskell-stack
  4. curl -sSL https://get.haskellstack.org/ | sh -s - -f
  5. sudo apt-get purge haskell-platform
huging
知識を蓄積します
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした