65

~/.cabal/config新しいマシンに一連のパッケージをインストールする前に、プロファイリング用のライブラリの構築を有効にするのを忘れていまし--reinstall worldた。

すべてを消去するほうが時間を有効に使えると思います。どうすればそれを正しく行うことができますか?

4

2 に答える 2

63

Cabal はインストールされているものを追跡せず、ghc のライブラリ メカニズム (または ghc を使用していない場合は他のコンパイラのメカニズム) を使用するだけなので、rm -r ~/.ghcローカルにインストールされたすべてのライブラリを削除するために使用できます。

複数の ghc がインストールされていて、特定の ghc のライブラリのみを削除したい場合は、削除したい ghc に対応するサブディレクトリを削除します。
たとえば、ghc-7.6.0 用にインストールしたものをすべて削除できrm -r ~/.ghc/x86_64-linux-7.6.0.20120810
ます。必要に応じて、これを使用して ghci_history を保存することもできます。

ll ~/.ghc/
total 24
-rw-r--r-- 1 johnl johnl 2300 Aug 21 11:47 ghci_history
drwxr-xr-x 3 johnl johnl 4096 Jun 17 19:09 x86_64-linux-6.12.3
drwxr-xr-x 3 johnl johnl 4096 May 17 08:17 x86_64-linux-7.2.1
drwxr-xr-x 3 johnl johnl 4096 May 16 17:34 x86_64-linux-7.4.1
drwxr-xr-x 3 johnl johnl 4096 Jun 15 08:21 x86_64-linux-7.4.2
drwxrwxr-x 3 johnl johnl 4096 Aug 15 12:37 x86_64-linux-7.6.0.20120810

編集:~/.cabal/worldユーザーが指定したバージョンの制約があるインストール済みパッケージのリストです。したがって、ほとんどの場合、たとえばmtl -any. を発行するなど、特定のバージョンのパッケージをインストールした場合、cabal install mtl-2.1.1そのバージョンが記録されます。ワールド ファイルを削除して最初からやり直すことができるはずです。または、ワールド ファイルを調べて依存関係が許容できる場合は、単に実行してみることもできますcabal install world。または、それを無視して、cabal のワールド サポートを使用しないこともできます (それが私が行っていることです)。

于 2012-08-21T04:23:25.677 に答える
19

このghc-pkg-resetシェル スクリプトは、~/.ghc/ と ~/.cabal/ の両方を、もう少し選択的に消去します。(付属の ghc-pkg-clean スクリプトは、混乱したパッケージのインストールから回復するのに役立ち、おそらくリセットを回避できます。) これらは便利だと思います。

于 2012-08-29T14:24:19.753 に答える