🍛
ubuntu 22.04に GHCup と Visual Studio Code 拡張をセットアップするだけ
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