How to completly remove packages installed by cabal?

南笙酒味 提交于 2019-12-04 00:09:24

问题


I am trying to learn cabal, and have tested several my own little projects, now I want to clean them up.

Basically, if I am working without a sandbox, my workflow is:

  1. run cabal init
  2. edit src/Mylib.hs, and then edit mylibname.cabal file
  3. run cabal build
  4. run cabal repl and test my code
  5. run cabal install

Now, I see my own project:

  1. installed into ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  2. registered in ~/.ghc/package.conf.d

I can write import Mylib in my other haskell source code, so I think the package is successfully installed.

Then I want to uninstall the package, as the package itself is just meaningless experiment code.

I read this article, who says that:

There is no "cabal uninstall" command. You can only unregister packages with ghc-pkg:

 ghc-pkg unregister

so I run

ghc-pkg unregister mylibname 

Now, it seems that the package is unregistered in ~/ghc/package.conf.d, however, there is still a compiled library in ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

So, how could I completly remove my project, could I just rm -rf the library in ~/.cabal?


回答1:


You can delete the files yourself from the packages directory. However, the reason no command to do so is provided is there's in general no guarantee something may not have linked against them elsewhere, and so such deletions may cause breakages. That said, there's also a tool that goes and does the deletion for you if you really want it.

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

And there's a tool with a bit more functionality that also lets you figure out what packages have no reverse deps, so at least no other packages break:

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



来源:https://stackoverflow.com/questions/31332033/how-to-completly-remove-packages-installed-by-cabal

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!