Как полностью удалить пакеты, установленные с помощью cabal?

Я пытаюсь изучить cabal и проверил несколько своих небольших проектов, теперь хочу их очистить.

В принципе, если я работаю без sandbox, мой рабочий процесс:

  • run cabal init
  • отредактируйте src/Mylib.hs, а затем отредактируйте файл mylibname.cabal
  • run cabal build
  • запустите cabal repl и проверьте мой код
  • run cabal install

Теперь я вижу свой собственный проект:

  • установлен в ~/.cabal/lib/x86-64-linux-ghc-7.10.1
  • зарегистрировано в ~/.ghc/package.conf.d

Я могу написать import Mylib в другом исходном коде haskell, поэтому я думаю, что пакет успешно установлен.

Затем я хочу удалить пакет, поскольку сам пакет является просто бессмысленным кодом эксперимента.

Я читаю эту статью, которая говорит, что:

Нет команды "cabal uninstall". Вы можете только отменить регистрацию пакеты с ghc-pkg:

 ghc-pkg unregister

поэтому я запускаю

ghc-pkg unregister mylibname 

Теперь кажется, что пакет не зарегистрирован в ~/ghc/package.conf.d, однако в ~/.cabal/lib/x86-64-linux-ghc-7.10.1 все еще есть скомпилированная библиотека.

Итак, как я мог полностью удалить свой проект, мог ли я просто rm -rf библиотека в ~/.cabal?

Ответ 1

Вы можете удалить файлы из каталога пакетов. Тем не менее, причина, по которой не требуется команда, заключается в том, что в целом нет никакой гарантии, что что-то не может быть связано с ними в другом месте, и поэтому такие удаления могут привести к поломкам. Тем не менее, есть также инструмент, который идет, и делает удаление для вас, если вы действительно этого хотите.

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

И там есть инструмент с немного большей функциональностью, который также позволяет вам определить, какие пакеты не имеют обратных оттисков, поэтому по крайней мере никакие другие пакеты не сломаются:

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