前書き
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-binlocal-bin-path
の違いが分からない。
もしかすると上の説明もlocal-bin-pathを使ったほうが適切なのかも(当方の環境ではいずれも同じパスが指定されています)