如何完全删除cabal安装的软件包?

Ala*_*aya 12 haskell cabal

我正在努力学习阴谋,并测试了几个我自己的小项目,现在我想要清理它们.

基本上,如果我没有工作sandbox,我的工作流程是:

  1. cabal init
  2. 编辑src/Mylib.hs,然后编辑mylibname.cabal文件
  3. cabal build
  4. 运行cabal repl并测试我的代码
  5. cabal install

现在,我看到了自己的项目:

  1. 安装到 ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  2. 在.注册 ~/.ghc/package.conf.d

我可以用import Mylib我的其他haskell源代码编写,所以我认为该软件包已成功安装.

然后我想卸载软件包,因为软件包本身只是无意义的实验代码.

我读过这篇文章,他说:

没有"cabal uninstall"命令.您只能使用ghc-pkg取消注册包:

 ghc-pkg unregister
Run Code Online (Sandbox Code Playgroud)

所以我跑了

ghc-pkg unregister mylibname 
Run Code Online (Sandbox Code Playgroud)

现在,似乎该包未注册~/ghc/package.conf.d,但是,仍然有一个编译库 ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

那么,我怎么能完全删除我的项目,我可以只是rm -rf~/.cabal吗?

scl*_*clv 8

您可以自己从包目录中删除文件。但是,没有提供这样做的命令的原因是,通常不能保证某些东西可能不会在其他地方与它们相关联,因此此类删除可能会导致损坏。也就是说,如果您真的需要,还有一个工具可以为您执行删除操作。

http://hackage.haskell.org/package/cabal-uninstall

还有一个具有更多功能的工具,它还可以让您找出哪些包没有反向依赖,因此至少没有其他中断:

https://github.com/iquiw/cabal-delete

  • 包管理器的实现真是懒惰啊。从一种非常糟糕的意义上来说,这是一种懒惰。我知道很多人干脆放弃了 Haskell,因为包管理太难处理了。我们需要抽象出这些问题。 (2认同)