5

darcsden コードの cabal インストールを行った後、次のメッセージが表示されます。

cabal: 次のパッケージは、再インストールによって破損する可能性があります: bin-package-db-0.0.0.0 ghc-7.4.1 とにかくインストールしたい場合は --force-reinstalls を使用してください。

どうすればこれを回避できますか? どういう意味ですか?

4

1 に答える 1

8

なぜそれが起こるのですか?

の完全な出力を見ると、次のcabal install darcsdenような行がいくつか見つかります。

binary-0.5.1.0 -bytestring-in-base (reinstall) changes: array-0.4.0.0 ->
0.3.0.3, containers-0.4.2.1 -> 0.4.1.0

これはcabal、システムに既にあるパッケージを (破壊的に) 再インストールすることを含むインストール計画が見つかったことを意味します。

現在、GHC パッケージは、(再帰的な) 依存関係に関してはかなり敏感であり、通常、すべての依存関係の正確なバージョンが利用可能であり、依存関係の正しいバージョンに対してコンパイルされている場合などにのみ機能します。したがって、既にインストールされているパッケージを依存関係が変更された新しいバージョンに置き換えると、システム上の一部のパッケージが使用できなくなる可能性があります。バージョン 0.14.0 以降cabal、誤ってシステムを破壊することを防ぐために、このような状況について事前に警告します。

あなたの場合、どれが再インストールされるかに依存するため、壊れている可能性のあるパッケージの 1 つghcです。したがって、GHC を実際に破壊する可能性があるため、フラグを使用しようとしないでください。bin-package-dbbinary--force-reinstalls

あなたは何ができますか?

再インストールされるものをスキャンすると、かなりの数の依存関係がダウングレードされていることがわかります。これは、インストールしようとしているパッケージがまだ GHC 7.4.1 に適切に更新されていない可能性があることを示唆しています。

cabal install darcsden --avoid-reinstalls一般に、再インストールのないインストール プランを明示的に検索するように呼び出すことができます。残念ながら、この場合は失敗します(私にとっては)。

パッケージの説明を簡単に見ましたdarcsdenが、かなりの数の依存関係をdarcsden更新する必要があるようです。したがって、残りのオプションは次のとおりです。 の作者darcsdenに更新バージョンをリリースするよう説得するかdarcsden、GHC の古いバージョン (7.0.4 など) を使用してインストールします。

于 2012-06-26T13:32:31.407 に答える