【发布时间】:2017-09-13 09:42:26
【问题描述】:
我已经使用stack 构建工具安装了ghc。它编译我的项目。但是当我在项目目录中输入nix-shell 并想从nix-shell 编译我的项目时,我看到这样的错误:
No compiler found, expected minor version match with ghc-8.0.2
这可以通过运行stack setup 命令来解决。但我担心这会再次安装ghc,从而在我的机器上消耗更多空间等等。有没有办法在不运行stack setup 命令的情况下将已安装的ghc 用于nix-shell?
【问题讨论】:
-
我对@987654331@ 一无所知,但如果运行
stack setup的AFAIK 版本已经下载到您计算机的某个位置,则该版本不会重新下载该版本。 Stack 尽可能地尝试在项目之间共享下载。 -
现在栈想要使用自己的 ghc,除非通过
--system-ghc或在 config.yaml / stack.yaml 中指定system-ghc: true。所以,我建议将system-ghc: true放入config.yaml。 -
@mgsloan 感谢您的建议!可能,这就是解决方案。还考虑将
ghc添加到PATH。 -
堆栈是要安装在 nix-shell 中,还是应该存在于用户配置文件中?我的印象是我会通过 shell.nix 在 shell 中引入堆栈,然后在 shell 中运行堆栈。
-
@CMCDragonkai 在我的情况下
stack已经存在于我的用户配置文件中。
标签: haskell ghc haskell-stack nix nix-shell