web-dev-qa-db-ja.com

cabalによってインストールされたパッケージを完全に削除するにはどうすればよいですか?

私は陰謀団を学ぼうとしています、そして私自身の小さなプロジェクトをいくつかテストしました、今私はそれらをきれいにしたいです。

基本的に、sandboxなしで作業している場合、ワークフローは次のようになります。

  1. cabal initを実行します
  2. src/Mylib.hsを編集してから、mylibname.cabalファイルを編集します
  3. cabal buildを実行します
  4. cabal replを実行して、コードをテストします
  5. cabal installを実行します

今、私は自分のプロジェクトを見ています:

  1. ~/.cabal/lib/x86-64-linux-ghc-7.10.1にインストールされています
  2. ~/.ghc/package.conf.dに登録

他のhaskellソースコードにimport Mylibを書くことができるので、パッケージは正常にインストールされたと思います。

次に、パッケージ自体は意味のない実験コードであるため、パッケージをアンインストールします。

私は this の記事を読みました。

「cabaluninstall」コマンドはありません。 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するだけでいいのでしょうか?

13
Alaya

パッケージディレクトリから自分でファイルを削除できます。ただし、そのためのコマンドが提供されていない理由は、一般に、他の場所で何かがリンクされていない可能性があるという保証がないため、そのような削除によって破損が発生する可能性があるためです。そうは言っても、あなたが本当に必要な場合に削除を実行するツールもあります。

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

また、もう少し機能が豊富なツールがあり、どのパッケージに逆デップがないかを把握できるため、少なくとも他のパッケージが壊れることはありません。

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

4
sclv