cabal安装依赖性错误:“base- *被排除在外,因为顶级依赖基础-any”

时间:2011-09-11 01:21:06

标签: haskell dependencies cabal

这是完整的错误:

$ cabal install hakyll
Resolving dependencies...
cabal: cannot configure snap-server-0.5.3.1. It requires base >=4.3 && <5
For the dependency on base >=4.3 && <5 there are these packages: base-4.3.0.0,
base-4.3.1.0 and base-4.4.0.0. However none of them are available.
base-4.3.0.0 was excluded because of the top level dependency base -any
base-4.3.1.0 was excluded because of the top level dependency base -any
base-4.4.0.0 was excluded because of the top level dependency base -any
$

如何排除base-*的版本,因为某些规则似乎表明任何版本都没问题?

2 个答案:

答案 0 :(得分:3)

每次遇到这个问题,都是因为我做了以下所有事情:

  1. 从Hackage下载了一个包含过期依赖项的包。
  2. 更新了依赖项并观察到它构建正常(或花时间修复发生的任何错误)。
  3. 使用新的依赖项启用cabal install
  4. 未更新版本号。
  5. 最后一个是真正的踢球者。 cabal install将假设,如果它知道来自Hackage的软件包的版本/依赖关系对,则该对是规范的。如果您希望它了解更新的依赖项,请在安装之前更改软件包的版本号。

    您需要检查您是否已正确执行此操作,以解决您手动安装的任何hakyll依赖项。

答案 1 :(得分:3)

遇到同样的问题。解决了它。

这是一个干净的haskell安装。但它是一个干净的haskell安装来自linux flavor(在本例中为ubuntu)包管理器,它有旧版本。

不得不删除旧包装&amp;下载源和&amp;建设和安装它。

获取最新的平台来源:
http://hackage.haskell.org/platform/linux.html

获取平台所需的ghc源。 http://haskell.org/ghc/download_ghc_7_0_3#distros

这样做的一个例子: http://sporkcode.wordpress.com/2009/07/11/installing-the-haskell-platform-in-ubuntu/