前書き
The Haskell Tool StackのサイトではUn*x OS環境へのインストール方法とは別に、Windows環境へのインストール方法も記載があるものの、アンインストールについては
Removing ~/.stack and /usr/local/bin/stack should be sufficient.
との記載があるだけ。
ところがWindows環境ではそんなモノはないので、ここで詰んでしまう。
プログラミング開発、Windowsユーザーに冷たすぎ問題がここでも。
結論
次を削除する。
- stack-root(Linuxなら
~/.stack
)であるc:\sr
を丸ごと削除 - Linuxではstack-root配下にある
programs
が、windowsの場合にはAppData\Local\Programs
にあるのでstack
フォルダを丸ごと削除 - windowsの場合、
stack install
でできたexeファイルとstackの実行ファイル自身が、ユーザーフォルダ配下のAppData\Roaming\local\bin
にあるので、不要なものを削除する
Windowsのstackにはアンインストーラーも付いてくるが実行しても
- stackの実行ファイルの削除
- ユーザー環境変数(後述する
stack-root
とlocal-bin
へのpath)の削除
のみのようで、一連の関連フォルダは残ってしまうので手作業で削除する。
詳細
Stackの各種パス比較
stack path
コマンドの応答結果比較。
xxxxx
はユーザー名
path | Linux | Windows | |
---|---|---|---|
stack-root | /home/xxxxx/.stack | C:\sr | windowsのsnapshotはここ |
programs | /home/xxxxx/.stack/programs/x86_64-linux | C:\Users\xxxxx\AppData\Local\Programs\stack\x86_64-windows | |
local-bin | /home/xxxxx/.local/bin | C:\Users\xxxxx\AppData\Roaming\local\bin | stack installで出来た実行fileの置き場 |
stackの実行file | /usr/local/bin/stack | C:\Users\xxxxx\AppData\Roaming\local\bin\stack.exe |
-
programs
にはwindowsの場合、当方の環境ではghc
とmsys
(と7Z
)があった -
local-bin
はstack install
でできた実行ファイルをコピーして置く場所で、具体的には当方の環境ではdoctest
,hlint
,intero
といった辺りの実行ファイルがあった。windowsの場合Stack自身とそのアンインストーラーもここに置かれる。
アンインストールとは直接関係ないのですがstack path
で応答される
local-bin
local-bin-path
の違いが分からない。
もしかすると上の説明もlocal-bin-path
を使ったほうが適切なのかも(当方の環境ではいずれも同じパスが指定されています)