4

我正在尝试使用 cabal 安装 leksah 作为我的开发环境,但我遇到了错误。

user@home:~$ cabal install leksah
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: leksah-0.15.2.0 (user goal)
next goal: base (dependency of leksah-0.15.2.0)
rejecting: base-4.10.0.0/installed-4.1... (conflict: leksah => base>=4.0.0.0 && <4.9)
rejecting: base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0,
base-4.8.1.0, base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0,
base-4.6.0.1, base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0,
base-4.4.0.0, base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1,
base-4.2.0.0, base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1
(constraint from non-upgradeable package requires installed instance)
Backjump limit reached (currently 2000, change with --max-backjumps or 
try to run with --reorder-goals).

有关在我的机器上安装 haskell 的其他详细信息如下 -

user@home:~$ ghci --version
The Glorious Glasgow Haskell Compilation System, version 8.2.1
user@home:~$ cabal --version
cabal-install version 1.24.0.2
compiled using version 1.24.2.0 of the Cabal library 
user@home:~$ stack --version
Version 1.3.2, Git revision 3f675146590da4f3edf768b89355f798229da2a5 (4395 commits) x86_64 hpack-0.15.0

有什么建议可以解决这些错误吗?

4

1 回答 1

2

让我们直接了解依赖关系:

  • leksah有版本0.15.2,大约在 18 个月前发布。它取决于base严格低于的包4.9(另请参阅版本凹凸提交)。
  • ghc有版本8.2.1。根据发行说明,该base软件包有版本4.10.0.0

你不能安装另一个基础包——它本质上链接到 ghc 版本(见这篇文章)。请注意,基本包的版本ghc 8.0.1发行说明)是4.9.0.0.


所以要么

  • 安装 8 之前的 haskell 版本,附带较旧的基础包,或
  • leksah从其 github 源安装(安装说明),或
  • 与其他贡献者合作,可能会发布一个0.15.1(或其他)只是碰撞版本(当然前提是它仍在工作)。

不过看起来很奇怪——过去两周有提交,但是下载页面提到他们正在计划一个0.16版本——这是半年前的事了。


ghc我有点想知道为什么s 次要版本有上限- 目前版本要求设置为 base >=4.0.0.0 && <4.11。因此,当再次ghc next碰撞base包装时,就会出现同样的问题。所以leksah几乎锁定了ghc发布周期。

于 2017-10-11T05:57:16.047 回答