2015-07-10 37 views
10

Sto cercando di imparare la cabala e ho testato diversi miei piccoli progetti, ora voglio pulirli.Come rimuovere completamente i pacchetti installati dalla cabala?

In sostanza, se sto lavorando senza un sandbox, il mio flusso di lavoro è:

  1. corsa cabal init
  2. modificare src/Mylib.hs, e quindi modificare mylibname.cabal file di
  3. corsa cabal build
  4. corsa cabal repl e prova la mia codice
  5. run cabal install

Ora, vedo il mio progetto:

  1. installato nella ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  2. registrato in ~/.ghc/package.conf.d

posso scrivere import Mylib nel mio altro codice sorgente di Haskell, quindi penso che il pacchetto è installato con successo.

Quindi voglio disinstallare il pacchetto, poiché il pacchetto stesso è solo un codice di esperimento privo di significato.

ho letto this articolo, che dice che:

non esiste un comando "cabala uninstall". È possibile annullare la registrazione solo pacchetti con GHC-pkg:

ghc-pkg unregister 

così corro

ghc-pkg unregister mylibname 

Ora, sembra che il pacchetto non è registrata in ~/ghc/package.conf.d, tuttavia, c'è ancora una libreria compilata in ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

Quindi, come ho potuto rimuovere completamente il mio progetto, potevo solo rm -rf la libreria in ~/.cabal?

+1

I non credo che la cabala stia ricevendo un comando di disinstallazione in qualsiasi momento presto. Tuttavia, si può provare a usare "stack" invece di cabala che utilizza sandbox con grande effetto e quasi elimina la necessità di eliminare singoli pacchetti. I pacchetti sperimentali e specifici del progetto sono sempre installati nella directory del progetto locale, e puoi semplicemente eseguire 'stack clean' per cancellare tutti i pacchetti locali. –

risposta

2

È possibile eliminare personalmente i file dalla directory dei pacchetti. Tuttavia, il motivo per cui non viene fornito alcun comando è che in generale non è garantito che qualcosa possa non essersi collegato ad essi altrove, pertanto tali eliminazioni potrebbero causare rotture. Detto questo, c'è anche uno strumento che va e fa la cancellazione per te se lo desideri veramente.

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

E c'è uno strumento con un po 'più funzionalità che permette anche di capire quali pacchetti hanno dipendenze inversa, così almeno altri pacchetti pausa:

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

Problemi correlati