了解cabal依赖性消息 [英] Understanding cabal dependency messages
问题描述
目前,当我尝试安装GOA时,我收到以下消息:
> sudo cabal install goa
解决依赖性...
为了安装以下内容:
directory-1.1.0.2(重新安装)更改:filepath-1.3.0.0 - > 1.2.0.1
process-1.0.1.5(新版本)
goa-3.1(新包)
cabal:以下软件包可能会因重新安装而中断:
。 ...
我的问题是这是否意味着我目前有filepath-1.3.0.0作为默认和cabal(在一个--force-reinstalls)将会覆盖这个并使filepath-1.2.0.1为默认值?我有点困惑的原因是,当我查看位置:
cabal / packages / hackage.haskell.org / filepath
我发现1.2.0.1& 1.3.0.0礼物。此外,命令cabal list filepath表明这两个软件包都已安装(请参阅下面的安装的版本:1.2.0.1,1.3.0.0):
> cabal列表文件路径
......
*文件路径
概要:用于以跨平台方式操作FilePath的库。
默认可用版本:1.3.0.1
安装版本:1.2.0.1,1.3.0.0
主页:http://www-users.cs.york.ac.uk/~ndm/ filepath /
许可证:BSD3
,你有 directory-1.1.0.2
安装并使用 filepath-1.3.0.0
构建。
这里的问题是您要安装 goa
,它需要 filepath(≥1.1& <1.3)
,和 目录(≥1.0& <1.2)
。您已经安装了所有正确的软件包,但目录
是使用太新版本的 filepath
构建的。 Cabal-install解决这个冲突的方法是重建目录
,以便它使用旧版本的 filepath
。所有这些都是因为你不应该在包的依赖关系中包含多个版本的相同包(在这种情况下 goa
)。
currently when I try to install GOA I get the following message :
>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:
....
My question is whether this means that I currently have "filepath-1.3.0.0" as default, and cabal (upon a --force-reinstalls) is going to override this and make "filepath-1.2.0.1" as default? The reason I am a bit confused is that when I look in the location :
cabal/packages/hackage.haskell.org/filepath
I find both 1.2.0.1 & 1.3.0.0 present. Furthermore the command "cabal list filepath" indicates that both packages are installed (see "Installed versions: 1.2.0.1, 1.3.0.0" in the below) :
>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
Right now, you have directory-1.1.0.2
installed and built with filepath-1.3.0.0
.
The issue here is that you're installing goa
which requires filepath (≥1.1 & <1.3)
, and directory (≥1.0 & <1.2)
. You already have all the right packages installed, but directory
was built with a too new version of filepath
. Cabal-install's solution to this conflict is to rebuild directory
so that it uses the older version of filepath
. All of this is done because you shouldn't have multiple versions of the same package in the dependencies of a package (goa
in this case).
这篇关于了解cabal依赖性消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!