更新:
基於@邁克爾Snoyman的評論只是用這個命令應該足夠刪除軟件包:
stack exec -- ghc-pkg unregister --force regex-pcre
原來的答案:
我不知道這是否是被認可的方式,但似乎有效。下面是簡介:
- 找到了GHC的版本
ghc-pkg
程序使用的是
- 找到包db目錄爲您解析版本
- 運行
$ghcpkg --package-db $pkgdb unregister --force <package>
- 同樣來自刪除軟件包文件stack的
precompiled
目錄
假設我們要刪除的包是zlib-0.5.4.2
。
定位GHC-PKG
在〜/ .STACK /節目找到適合您的編譯器版本,例如在GHC-PKG程序~/.stack/programs/x86_64-osx/ghc-7.10.2/bin/ghc-pkg
。調用此$ghcpkg
定位包分貝
在〜/ .STACK /快照找到pkgdb
目錄您正在使用的解析器,例如~/.stack/snapshots/x86_64-osx/lts-3.1/7.10.2/pkgdb
。致電$pkgdb
。
註銷包
運行:
$ghcpkg --package-db $pkgdb unregister --force zlib-0.5.4.2
忽略有關破裂或破包的任何警告。
您可以檢查,看看是否你的包被登記使用此命令:
$ghcpkg --package-db $pkgdb list | grep zlib
從precompiled
目錄
刪除軟件包在~/.stack/precompiled
找到名爲zlib-0.5.4.2
任何目錄並刪除一個爲您的相關版本的GHC:
find ~/.stack/precompiled -name 'zlib-*'
/bin/rm -rf ...
重新安裝程序包
stack --resolver=... install zlib
堆棧應該報告它正在重建軟件包。
你可能只能用'stack exec -ghc-pkg unregister pkgname'來逃脫 –
謝謝 - 答案已經更新。 – ErikR