8

阴谋集团不断有依赖问题。真的很累。到目前为止,我已经尝试了很多工作,这是我尝试安装 snap 的方法:

$ sudo cabal 安装快照服务器
解决依赖关系...
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-1.1.0.0,因为选择了 mtl-2.0.0.0
mtl-1.1.0.0 被排除在外,因为 monads-fd-0.1.0.3 需要 mtl ==2.*
排除了 mtl-1.1.0.1,因为选择了 mtl-2.0.0.0
mtl-1.1.0.1 被排除在外,因为 monads-fd-0.1.0.3 需要 mtl ==2.*
排除了 mtl-1.1.0.2,因为选择了 mtl-2.0.0.0
mtl-1.1.0.2 被排除在外,因为 monads-fd-0.1.0.3 需要 mtl ==2.*
排除了 mtl-1.1.1.0,因为选择了 mtl-2.0.0.0
mtl-1.1.1.0 被排除在外,因为 monads-fd-0.1.0.3 需要 mtl ==2.*

我在安装 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 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 回答