【问题标题】:Cabal usage (Haskell)阴谋集团使用(Haskell)
【发布时间】:2010-11-06 20:26:45
【问题描述】:

Cabal 有依赖问题经常。真的很累。到目前为止,我已经尝试了很多工作,这是我尝试安装 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

【问题讨论】:

    标签: haskell dependencies installation cabal hackage


    【解决方案1】:

    问题是 snap-server-0.2.15 对 monads-fd 有无限依赖。最新版本 monads-fd-0.1.0.3 需要 mtl-2。* 不幸的是,这与需要 mtl

    尝试运行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。

    【讨论】:

    • “即使我上传了一个新的 ListLike...,也不能解决你的问题” 道德:永远不要使用上限。笑话 :) 看起来我们需要比 hackage 更稳定的东西,而不是 HP。介于两者之间。
    • @Yuras,我同意(我意识到在我打字时上限阻止了一种解决方案)。如果 hackage 需要所有内容的上限,那么这将大大有助于提高稳定性。我使用 cabal 和版本号的次数越多,我就越相信 autotools 做对了。
    • 是的,cabal 需要大量关于要使用的软件包的知识!这让我很难过:-(
    • 尽管如此,我还是能够通过 --reinstall 安装所有已损坏的依赖项。谢谢!
    • 发行包——如果它们存在于你的世界——希望是你寻求的中间地带
    猜你喜欢
    • 2013-09-16
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多