了解cabal依赖性消息

时间:2012-12-05 15:21:26

标签: haskell dependencies dependency-management cabal

目前,当我尝试安装GOA时,我收到以下消息:

>sudo cabal install goa
Resolving dependencies...
In order, the following would be installed:
directory-1.1.0.2 (reinstall) changes: filepath-1.3.0.0 -> 1.2.0.1
process-1.0.1.5 (new version)
goa-3.1 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
....

我的问题是,这是否意味着我目前拥有" filepath-1.3.0.0"默认情况下,cabal(在--force-reinstalls上)将覆盖它并生成" filepath-1.2.0.1"默认?我有点困惑的原因是,当我查看位置时:

小集团/包/ hackage.haskell.org /文件路径

我发现1.2.0.1& 1.3.0.0目前。此外,命令" cabal list filepath"表示已安装两个软件包(请参阅"已安装的版本:1.2.0.1,1.3.0.0和#34;在下面):

>cabal list filepath
......
* filepath
    Synopsis: Library for manipulating FilePaths in a cross platform way.
    Default available version: 1.3.0.1
    Installed versions: 1.2.0.1, 1.3.0.0
    Homepage: http://www-users.cs.york.ac.uk/~ndm/filepath/
    License:  BSD3

1 个答案:

答案 0 :(得分:2)

目前,您已directory-1.1.0.2安装并使用filepath-1.3.0.0构建。

此处的问题是您正在安装需要filepath (≥1.1 & <1.3) directory (≥1.0 & <1.2)的{​​{3}}。您已经安装了所有正确的软件包,但directory是使用过于新版本的filepath构建的。 Cabal-install解决此冲突的方法是重建directory,以便它使用旧版本的filepath。所有这一切都已完成,因为在包的依赖关系中不应该有相同包的多个版本(在这种情况下为goa)。