2015-07-10 5 views
10

Ich versuche Cabal zu lernen und habe einige meiner eigenen kleinen Projekte getestet, jetzt möchte ich sie aufräumen.Wie vollständig von cabal installierte Pakete entfernen?

Grundsätzlich, wenn ich ohne sandbox arbeite, mein Workflow ist:

  1. Lauf cabal init
  2. bearbeiten src/Mylib.hs und bearbeiten Sie dann mylibname.cabal Datei
  3. Lauf cabal build
  4. Lauf cabal repl und testen Sie meine Code
  5. Lauf cabal install
  6. Jetzt

, ich sehe mein eigenes Projekt:

  1. installiert in ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  2. registriert in ~/.ghc/package.conf.d

ich import Mylib in meinem anderen Haskell-Quellcode schreiben kann, so denke ich das Paket ist erfolgreich installiert.

Dann möchte ich das Paket deinstallieren, da das Paket selbst ist einfach sinnlos Experiment-Code.

las ich this Artikel, der sagt, dass:

Es gibt keine "Kabale uninstall" Befehl ist. Sie können nur Pakete mit ghc-pkg deregistrieren:

ghc-pkg unregister 

so laufe ich

ghc-pkg unregister mylibname 

Nun scheint es, dass das Paket in ~/ghc/package.conf.d nicht registriert ist, aber es ist immer noch eine kompilierte Bibliothek in ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

Also, wie könnte ich mein Projekt komplett entfernen, könnte ich einfach rm -rf die Bibliothek in ~/.cabal?

+1

I glaube nicht, dass Cabal bald einen Deinstallationsbefehl bekommt. Sie können jedoch versuchen, "Stack" statt Cabal verwenden, die Sandboxes mit großer Wirkung verwendet und fast die Notwendigkeit, einzelne Pakete zu löschen. Experimentelle und projektspezifische Pakete werden immer in Ihrem lokalen Projektverzeichnis installiert, und Sie können einfach 'stack clean' ausführen, um alle lokalen Pakete zu löschen. –

Antwort

2

Sie können die Dateien selbst aus dem Paketverzeichnis löschen. Der Grund dafür, dass kein Befehl dazu gegeben wird, ist, dass es im Allgemeinen keine Garantie gibt, dass etwas nicht anderswo mit ihnen in Verbindung gebracht wurde, und daher können solche Löschungen zu Brüchen führen. Das heißt, es gibt auch ein Werkzeug, das geht und löscht für Sie, wenn Sie wirklich wollen.

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

Und es ist ein Werkzeug, mit einem bisschen mehr Funktionalität, die auch Sie herausfinden kann, welche Pakete keinen Reverse-deps haben, so dass zumindest keine anderen Pakete Pause:

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

Verwandte Themen