カバルの使用(Haskell)
-
29-09-2019 - |
質問
Cabalには依存関係の問題があります 常に. 。本当に疲れます。これまでのところ、私は多くのことを機能させようとしました、ここにスナップをインストールしようとしています:
$ sudo cabal install snap-server Resolving dependencies... cabal: cannot configure ListLike-1.1.0. It requires mtl >=1.1.0 && 1.2 For the dependency on mtl >=1.1.0 && 1.2 there are these packages: mtl-1.1.0.0, mtl-1.1.0.1, mtl-1.1.0.2 and mtl-1.1.1.0. However none of them are available. mtl-1.1.0.0 was excluded because mtl-2.0.0.0 was selected instead mtl-1.1.0.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* mtl-1.1.0.1 was excluded because mtl-2.0.0.0 was selected instead mtl-1.1.0.1 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* mtl-1.1.0.2 was excluded because mtl-2.0.0.0 was selected instead mtl-1.1.0.2 was excluded because monads-fd-0.1.0.3 requires mtl ==2.* mtl-1.1.1.0 was excluded because mtl-2.0.0.0 was selected instead mtl-1.1.1.0 was excluded because monads-fd-0.1.0.3 requires mtl ==2.*
Happstackなどをインストールするのに同様の問題があります。カバルを作る手順は何ですか?私はすでに試しました:
export PATH=/home/user/.cabal/bin:$PATH
解決
問題は、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およびに従ってください いつも 上部の依存境界線を使用します。
NB MTL-2で動作する新しいListlikeLikeをアップロードしても(すぐに行う)、Iterateeの上限のために新しいListLikeが選択されないため、問題は解決しません。
所属していません StackOverflow