Как полностью удалить пакеты, установленные с помощью 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