Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
8
Help us understand the problem. What is going on with this article?
@yamamasa1017

WSL2にHaskell (Stack経由) を入れたときにハマったこと

More than 1 year has passed since last update.

はじめに

先日 Windows10 May 2020 update が来て、WSL2がようやく正式版になりましたね!
そこでWSL2にHaskellを入れてみようと思ったのですが、エラーが出たのでハマったので、解決方法を忘備録として載せます。

WSL2のインストール方法はQiitaを探せばいくらでもありそうなので、ここでは紹介しません。
また、WSLとVSCodeの連携は こちらの記事 に書いたので、ぜひ読んでください!

今回私は、WSL2のUbuntu 20.04 LTSを使いました。

ハマったこと

stack setupコマンドを実行すると以下のようにエラーが出る

bash
$ stack setup
Preparing to install GHC (tinfo6) to an isolated location.
This will not interfere with any system-level installation.
Preparing to download ghc-tinfo6-8.4.4 ...
Download expectation failure: HttpExceptionRequest Request {
  host                 = "github.com"
  port                 = 443
  secure               = True
  requestHeaders       = [("User-Agent","The Haskell Stack")]
  path                 = "/commercialhaskell/ghc/releases/download/ghc-8.4.4-release/ghc-8.4.4-x86_64-fedora27-linux.tar.xz"
  queryString          = ""
  method               = "GET"
  proxy                = Nothing
  rawBody              = False
  redirectCount        = 10
  responseTimeout      = ResponseTimeoutDefault
  requestVersion       = HTTP/1.1
}
 ConnectionTimeout
Preparing to download ghc-tinfo6-8.4.4 ...

解決

https://github.com/commercialhaskell/stack/issues/5063
https://docs.microsoft.com/ja-jp/windows/wsl/troubleshooting
を参考にしました。
どうやら、DNS関連の問題らしいです。

手順

DNSサーバを一時的にGoogleのものに変更します。

まず、以下を実行

bash
sudo cp /etc/resolv.conf /etc/resolv.conf.new
sudo unlink /etc/resolv.conf
sudo mv /etc/resolv.conf.new /etc/resolv.conf

/etc/resolv.conf を開いて、内容を以下のように書き換える

nameserver 8.8.8.8
nameserver 8.8.4.4

この状態でstack setupを実行することで、無事インストールできます。
インストールが終わったら、以下のコマンドで元の設定に戻しましょう。

cd /etc
sudo mv resolv.conf resolv.conf.new
sudo ln -s ../run/resolvconf/resolv.conf resolv.conf

お疲れさまでした。

最後に

インストールするだけで結構面倒でしたね。
HIEをインストールする際にも同様の問題が起きるみたいです。

また、hackageからライブラリを取ってくる時も同じ問題が起こるので、日常的にWSL2で開発するのはしんどいかもしれません

WSL2が早く成熟してくれるといいなぁ

8
Help us understand the problem. What is going on with this article?
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

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
8
Help us understand the problem. What is going on with this article?