8

Cabalには常に依存関係の問題があります。本当に疲れます。これまで、私は多くのことを機能させようとしましたが、スナップをインストールしようとしています:

$ sudo cabal install snap-server
依存関係を解決しています...
cabal:ListLike-1.1.0を構成できません。mtl> = 1.1.0&&1.2が必要です
mtl> = 1.1.0 && 1.2への依存関係については、次のパッケージがあります。
mtl-1.1.0.0、mtl-1.1.0.1、mtl-1.1.0.2およびmtl-1.1.1.0。しかしそれらのどれも
利用可能です。
代わりにmtl-2.0.0.0が選択されたため、mtl-1.1.0.0は除外されました
monads-fd-0.1.0.3にはmtl==2。*が必要なため、mtl-1.1.0.0は除外されました。
代わりにmtl-2.0.0.0が選択されたため、mtl-1.1.0.1は除外されました
monads-fd-0.1.0.3にはmtl==2。*が必要なため、mtl-1.1.0.1は除外されました。
代わりにmtl-2.0.0.0が選択されたため、mtl-1.1.0.2は除外されました
monads-fd-0.1.0.3はmtl==2。*を必要とするため、mtl-1.1.0.2は除外されました。
代わりにmtl-2.0.0.0が選択されたため、mtl-1.1.1.0は除外されました
monads-fd-0.1.0.3にはmtl==2。*が必要なため、mtl-1.1.1.0は除外されました。

Happstackなどのインストールで同様の問題が発生します。cabal...を機能させる手順を教えてください。私はすでに試しました:

export PATH=/home/user/.cabal/bin:$PATH
4

1 に答える 1

7

問題は、snap-server-0.2.15がmonads-fdに無制限に依存していることです。最新バージョンのmonads-fd-0.1.0.3にはmtl-2が必要です。*残念ながら、これは、mtl <2.0を必要とするListLikeへの依存関係(iteratee経由)と競合します。これらの制約の両方を同時に満たすことはできないため、cabalはあきらめます。

実行してみてくださいcabal install snap-server --constrain="monads-fd=0.1.0.2"。これにより、mtlを必要としない以前のバージョンのmonads-fdが強制され、すべてが正しく機能すると思います。

多くのパッケージで問題が発生している場合は、mtl最近アップロードされた新しいパッケージが原因である可能性があります。を追加--constrain="mtl<2"してみてください。これが役立つ場合があります。

メンテナへの道徳:Haskell PVPに従い、常に依存関係の上限を使用します。

注意:mtl-2で動作する新しいListLikeをアップロードしても(これはすぐに実行します)、iterateeの上限のために新しいListLikeが選択されないため、問題は解決しません。

于 2010-11-06T22:17:11.350 に答える