🍛

ubuntu 22.04に GHCup と Visual Studio Code 拡張をセットアップするだけ

2023/03/05に公開

ubuntu 22.04に GHCup と Visual Studio Code 拡張をセットアップするだけ

Haskellのpyenvやnodebrew的なもの?であるGHCupをubuntu22.04へセットアップするだけの記事です(Visual Studio Codeで使おうとしています)
system-requirementsのあたりがubuntu22.04に合わせた対応を少しする必要がありました

確認した環境

$ grep PRETTY_NAME /etc/os-release 
PRETTY_NAME="Ubuntu 22.04.2 LTS"

Visual Studio Codeのバージョンは

Version: 1.76.0
Commit: 92da9481c0904c6adfe372c12da3b7748d74bdcb
Date: 2023-03-01T10:25:16.105Z
Electron: 19.1.11
Chromium: 102.0.5005.196
Node.js: 16.14.2
V8: 10.2.154.26-electron.0
OS: Linux x64 5.19.0-35-generic
Sandboxed: No

セットアップ手順

以下のようにすすめていきます

  • ubuntu 22.04での system-requirements のインストール
  • GHCup インストーラの起動
  • Visual Studio Code 拡張との連携

⚠注意点
system-requirementsがOSに合わせた対応が必要なものになっていてそのあたりのケアを👀

ubuntu 22.04での system-requirements のインストール

ubuntu 22.04ではlibffi6ではなくlibffi7になっていたのでそちらをインストール

$ sudo apt install build-essential curl libffi-dev \
libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5

GHCup インストーラの起動

インストーラを起動して

$ curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

下記質問に答えていくと環境が構築されます

Detected bash shell on your system...
Do you want ghcup to automatically add the required PATH variable to "/home/xxx/.bashrc"?

[P] Yes, prepend  [A] Yes, append  [N] No  [?] Help (default is "P").

➡ShellのPATH環境変数についての質問です。下記のどちらかを選択しておくことになるかと

  • [P]PATH環境変数の先頭に追加する
  • [A]PATH環境変数の末尾に追加する
Do you want to install haskell-language-server (HLS)?
HLS is a language-server that provides IDE-like functionality
and can integrate with different editors, such as Vim, Emacs, VS Code, Atom, ...
Also see https://haskell-language-server.readthedocs.io/en/stable/

[Y] Yes  [N] No  [?] Help (default is "N").

➡haskell-language-serverをインストールするかどうか(Visual Studio CodeのHaskell拡張を利用したい場合に必要になるので、[Y]でインストールしておく)

Do you want to enable better integration of stack with GHCup?
This means that stack won't install its own GHC versions, but uses GHCup's.
For more information see:
  https://docs.haskellstack.org/en/stable/yaml_configuration/#ghc-installation-customisation-experimental
If you want to keep stacks vanilla behavior, answer 'No'.

[Y] Yes  [N] No  [?] Help (default is "Y").

➡GHCupとstackをいい感じに連携するか?といった設問
現時点でよくわからなかったが、Yesにしてみる

Visual Studio Code 拡張との連携

Hasskell拡張をVisual Studio Codeにインストールします

test.hsなファイル名のファイルを作成しようとするとダイアログが出現するので
haskell-language-serverをインストールしていたはずなのでManually via PATHを選択すると

➡多分動いていそう

Discussion