2010-11-06 48 views
8

Cabal有依賴問題不斷。真的很累。到目前爲止,我試圖讓許多事情的工作,這是我嘗試安裝卡扣:Cabal usage(Haskell)

 
$ 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類似的問題,等等。是什麼力量讓陰謀的過程......工作? 我已經嘗試過:

​​3210

回答

7

的問題是,管理單元服務器0.2.15對單子-FD無界的依賴。最新版本monads-fd-0.1.0.3需要mtl-2。*不幸的是,這與ListLike的依賴性(通過iteratee)相沖突,這需要mtl < 2.0。這兩個約束條件都不能同時滿足,所以cabal放棄了。

嘗試運行cabal install snap-server --constrain="monads-fd=0.1.0.2"。這將強制monads-fd的早期版本不需要mtl,並且我認爲一切都可以正常工作。

如果您遇到了很多軟件包的問題,​​可能是由於最近上傳的新的mtl。您可以嘗試添加--constrain="mtl<2",這可能有所幫助。

道德維護者:遵循Haskell PVP和總是使用較高的依賴性邊界。

N.B.即使我上傳了一個與mtl-2一起工作的新ListLike(我很快就會做到這一點),但這並不能解決您的問題,因爲由於iteratee的上限,不會選擇新的ListLike。 「

+0

」即使我上傳了一個新的ListLike ...,那也不能解決你的問題「 道德:從不使用上限。笑話:) 看起來我們需要一些更穩定,然後黑客和惠普較不穩定。介於兩者之間的東西。 – Yuras 2010-11-06 22:36:19

+1

@Yuras,我同意(並且我意識到上限在我打字時阻止了一個解決方案)。如果hackage需要所有東西都有上限,那麼提高穩定性還有很長的路要走。我使用cabal和版本號越多,我越確信autotools是對的。 – 2010-11-06 23:01:18

+0

Yikes,cabal需要很多關於使用的軟件包的知識!這讓我很難過:-( – 0atman 2010-11-07 15:22:50