Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何卸载Cabal软件包的版本?_Haskell_Ghc_Cabal - Fatal编程技术网

Haskell 如何卸载Cabal软件包的版本?

Haskell 如何卸载Cabal软件包的版本?,haskell,ghc,cabal,Haskell,Ghc,Cabal,Happstack Lite正在破坏我,因为它得到blaze html版本0.5,而它想要版本0.4。Cabal说安装了0.4.3.4和0.5.0.0两个版本。我想删除0.5.0.0,只使用旧版本。但是阴谋集团没有“卸载”命令,当我尝试取消注册ghc pkg——强制blaze html时,ghc pkg说我的命令被忽略了 我该怎么办 更新:不要相信。尽管ghc pkg声称忽略该命令,但该命令并未被忽略。使用Don Stewart接受的答案,您可以完全删除希望删除的版本。您可以ghc pkg注销特

Happstack Lite正在破坏我,因为它得到blaze html版本0.5,而它想要版本0.4。Cabal说安装了0.4.3.4和0.5.0.0两个版本。我想删除0.5.0.0,只使用旧版本。但是阴谋集团没有“卸载”命令,当我尝试取消注册ghc pkg——强制blaze html时,
ghc pkg
说我的命令被忽略了

我该怎么办


更新:不要相信。尽管ghc pkg声称忽略该命令,但该命令并未被忽略。使用Don Stewart接受的答案,您可以完全删除希望删除的版本。

您可以
ghc pkg注销特定版本,如下所示:

$ghc pkg注销-强制regex-compat-0.95.1

这应该足够了。

这是我用来卸载软件包的shell脚本。它支持多个已安装版本的GHC,还可以擦除相关文件(但不提供保修服务,如果您安装了软管,请不要怪我!)

#/宾/巴什-欧盟
#用法:./uninstall.sh[--force |--no unregister]pkgname版本
#如果将环境中的VER设置为例如“-7.0.1”,则可以使用
#与不同ghc版本关联的ghc pkg
:${VER:=}
如果[“$#”-lt 1]
然后
echo“用法:$0[--force |--no unregister]pkgname版本”
出口1
fi
如果[“$1”=”--force”]
那么力=--力;移位;#已传递给ghc pkg取消注册
其他部队=
fi
如果[“$1”==”--无注销“]
然后shift#跳过注销,只删除文件
其他的
如果[“$(ghc包装$VER最新$1)”!=“$1”]
然后
#未指定完整版本:列出选项并退出
ghc包装$VER清单$1;出口1
fi
ghc包装$VER注销$force$1
fi
#擦除库文件
rm-rfv--~/.cabal/lib/$1/ghc-$(ghc$VER--数字版)/
#如果目录为空,即不在任何其他GHC版本上
如果rmdir--~/.cabal/lib/$1
然后rm-rfv--~/.cabal/share/{,doc/}$1#然后也擦除共享文件
fi

还有一个提供
阴谋集团卸载
命令的软件包。它将注销包并删除文件夹。值得一提的是,它将
--force
传递给
ghc pkg unregister
,这样它就可以破坏其他包。

如果您在沙箱之外:

ghc pkg注销——强制regex-compat-0.95.1
如果您在一个房间内:

cabal sandbox hc组件--注销Attopassec--强制

第一个
--
hc-pkg
的参数分隔符。它以沙箱感知的方式运行
ghc pkg

ghc pkg list blaze html
?您确定以正确的用户身份运行它吗?也许明确说明要取消注册的版本?@ivanm谢谢你的提问。原来ghc pkg对我撒谎了!有点像的副本,但我不愿意标记它,因为这一个更好:)非常适合查找和删除孤立的包。@Tobu关于
cabal uninstall
?阴谋集团更强大吗?它能否与阴谋集团沙箱一起工作(cabal exec--cabal delete能否正确工作并从沙箱中删除包)?为什么不把这也作为一个答案呢?这看起来是个不错的工具。
cabal uninstall
导致
cabal:unrecogned命令:uninstall(try--help)
@StevenShaw-我提供的链接指向一个黑客软件包,您需要安装该软件包才能使用。我会推荐Don的答案,这就是我所用的答案。那么从@Tobu上面的评论来看呢?它比阴谋集团卸载更好还是更强大?一旦注销,是否有任何文件需要删减?其他地方的评论提到ghc pkg会在周围留下文件夹?查看您的
~/.cabal/
文件夹以了解pkg和二进制文件的位置。我刚刚在Mac上尝试了这个方法,但似乎不起作用。