2

我正在尝试使用堆栈(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位,这里发生了什么,我能做什么?

4

1 回答 1

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.

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

于 2017-07-08T18:19:53.713 回答