堆栈不支持的版本

时间:2017-07-08 15:39:08

标签: haskell archlinux haskell-stack stackage

我试图用堆栈(lts-3.20)构建libssh2-hs并且我遇到了一些错误:

$ stack build
No compiler found, expected minor version match with ghc-7.10.2 (x86_64-ncurses6) (based on resolver setting in /home/black/programmation/haskell/libssh2-hs/stack.yaml).
To install the correct GHC into /home/black/.stack/programs/x86_64-linux/, try running "stack setup" or use the "--install-ghc" flag.
$ stack setup
No information found for ghc-7.10.2.
Supported versions for OS key 'linux64-ncurses6': GhcVersion 7.10.3, GhcVersion 8.0.1, GhcVersion 8.0.2

我使用archlinux 64位,这里发生了什么,我该怎么办?

1 个答案:

答案 0 :(得分:4)

此错误消息暗示了问题的根源:

No information found for ghc-7.10.2.
  Supported versions for OS key 'linux64-ncurses6': GhcVersion 7.10.3, GhcVersion 8.0.1, GhcVersion 8.0.2

Arch Linux默认提供libncurses6,而GHC的标准版本提供libncurses5 / libtinfo5。 Stack可以获取使用libncurses6的替代GHC构建;但是,它们只能从GHC 7.10.3开始提供,这解释了为什么使用GHC 7.10.2的快照存在此问题。以下建议取自Stack issue #3177,应该解决它:

  

从AUR安装ncurses5-compat-libs,然后通过执行类似stack --ghc-build=standard setup的操作强制Stack使用标准GHC绑定器。

(请注意,--ghc-build=standard可能没有必要 - 如果我没记错的话,几个月前我遇到这个问题时,stack setup在安装了ncurses5-compat-libs后检测到了相应的GHC构建,无需明确指定。)