2015-07-10 19 views
10

Próbuję się nauczyć kabały i przetestowałem kilka własnych projektów, teraz chcę je wyczyścić.Jak całkowicie usunąć pakiety zainstalowane przez cabal?

Zasadniczo, jeśli pracuję bez sandbox mój workflow:

  1. prowadzony cabal init
  2. edit src/Mylib.hs, a następnie edytować mylibname.cabal plik
  3. prowadzony cabal build
  4. prowadzony cabal repl i przetestować kod
  5. uruchom cabal install

Teraz widzę mój własny projekt:

  1. zainstalowanego w ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  2. zarejestrowanego w ~/.ghc/package.conf.d

mogę napisać import Mylib w moim innym kodem źródłowym Haskell, więc myślę, że pakiet został pomyślnie zainstalowany.

Następnie chcę odinstalować pakiet, ponieważ sam pakiet jest bezsensownym kodem eksperymentu.

czytam this artykuł, który mówi, że:

Nie ma polecenia "Cabal Odinstaluj". Można wyrejestrować tylko pakiety z ghc-pkg:

ghc-pkg unregister 

więc biegnę

ghc-pkg unregister mylibname 

Teraz wydaje się, że opakowanie jest niezarejestrowany w ~/ghc/package.conf.d jednak wciąż jest skompilowane biblioteki w ~/.cabal/lib/x86-64-linux-ghc-7.10.1.

Jak mogę całkowicie usunąć projekt, czy mogę po prostu rm -rf bibliotekę w ~/.cabal?

+1

I nie myśl, że cabal dostaje polecenie odinstalowania w najbliższym czasie. Możesz jednak spróbować użyć "stosu" zamiast "kabała", który znakomicie wykorzystuje piaskownice i prawie eliminuje konieczność usuwania pojedynczych pakietów. Pakiety eksperymentalne i specyficzne dla projektu są zawsze instalowane w lokalnym katalogu projektu i można po prostu uruchomić "stack clean", aby wyczyścić wszystkie pakiety lokalne. –

Odpowiedz

2

Możesz usunąć pliki samodzielnie z katalogu pakietów. Jednakże, nie podano żadnego polecenia, aby to zrobić, ponieważ ogólnie nie ma gwarancji, że coś nie może być połączone z nimi gdzie indziej, a zatem takie skreślenia mogą powodować pęknięcia. To powiedziawszy, istnieje również narzędzie, które usuwa i usuwa je, jeśli chcesz je mieć.

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

I jest narzędziem z nieco większą funkcjonalność, która również pozwala zorientować się, jakie pakiety nie mają odwrotne deps, więc przynajmniej nie ma innych pakiety przerwa:

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

Powiązane problemy