Intero:来自堆栈配置的ghc不匹配

时间:2017-12-30 00:23:34

标签: haskell emacs haskell-stack intero

intero-mode尝试自动安装Intero时,会产生以下错误:

Intero is not installed in the Stack environment.

Installing intero-0.1.23 automatically ...


Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for intero-0.1.23:
    ghc-8.2.2 from stack configuration does not match >=7.8 && <8.2.2 (latest matching version
              is 8.2.1)
needed since intero is a build target.

Some potential ways to resolve this:

  * Recommended action: try adding the following to your extra-deps
    in <project directory>\stack.yaml:

- ghc-8.2.1

  * Set 'allow-newer: true' to ignore all version constraints and build anyway.

  * You may also want to try using the 'stack solver' command.

Plan construction failed.
Could not install Intero!

We don't know why it failed. Please read the above output and try
installing manually. If that doesn't work, report this as a
problem.

WHAT TO DO NEXT

If you don't want to Intero to try installing itself again for
this project, just keep this buffer around in your Emacs.

If you'd like to try again next time you try use an Intero
feature, kill this buffer.

这是在我升级到lts-10.0后开始发生的,但在此之前我遇到了Intero的问题(我在https://github.com/commercialhaskell/intero/issues/499报告了这一点)。这里发生了什么,我该如何解决?我在Windows 10上使用emacs和spacemacs。

2 个答案:

答案 0 :(得分:2)

我根本不是emacs专家,但我知道intero-mode elisp文件指定了intero Haskell软件包的确切版本。您需要更新到较新的emacs包。我不知道你是如何安装intero-mode的,但是我猜想(就像我一样)你把它从MELPA中解脱出来。最后我转移到通过Git进行安装,这样我就可以更轻松地升级和测试尚未在MELPA上发布的功能。您可以通过以下方式执行此操作:

  1. 在文件系统的某处克隆https://github.com/commercialhaskell/intero,例如~/.emacs.d/vendor/intero
  2. 将这样的行添加到~/.emacs(load-file "~/.emacs.d/vendor/intero/elisp/intero.el")

答案 1 :(得分:0)

首先stack update然后stack install intero安装最新版本的intero。