我试图用堆栈(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位,这里发生了什么,我该怎么办?
答案 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构建,无需明确指定。)