1

我正在尝试按照http://docs.haskellstack.org/en/stable/ghcjs.html中的说明在 NixOS 上使用 GHCJS 作为编译器建立一个新的 Stack 项目

我在我的 stack.yaml 文件中包含以下代码行(全部在一行,因为制表符空格似乎会产生问题):

# Compiler specifying the GHCJS compiler for this project (using improved base).
compiler: ghcjs-0.2.0.20151230.3_ghc-7.10.2
compiler-check: match-exact
setup-info: 
    ghcjs: source: 
        ghcjs-0.2.0.20151230.3_ghc7.10.2: 
            url: "https://github.com/nrolland/ghcjs/releases/download/v.0.2.0.20151230.3/ghcjs-0.2.0.20151230.3.tar.gz"

我在运行时检索到以下错误消息stack setup

Could not parse '/home/lorkaan/pandocJS/stack.yaml':
InvalidYaml (Just (YamlParseException {yamlProblem = "mapping values are not allowed in this context", yamlContext = "", yamlProblemMark = YamlMark {yamlIndex = 487, yamlLine = 12, yamlColumn = 17}}))
See https://github.com/commercialhaskell/stack/blob/release/doc/yaml_configuration.md.

此外,我尝试删除该setup-info字段,因为 Stack 抱怨它,让我的stack.yaml文件如下:

# Compiler specifying the GHCJS compiler for this project (using improved base).
compiler: ghcjs-0.2.0.20151230.3_ghc-7.10.2
compiler-check: match-exact

它使用堆栈设置命令生成此输出:

Warning: /home/lorkaan/pandocJS/stack.yaml: Unrecognized field in ProjectAndConfigMonoid: compiler
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
Already downloaded.                 
The following executables are missing and must be installed: make

有谁知道为什么会发生这种情况?

4

1 回答 1

4
  1. 第一个错误是因为 YAML 配置中的基本语法错误。正确的版本是:
setup-info: 
    ghcjs:
        source: 
            ghcjs-0.2.0.20151230.3_ghc7.10.2: 
                url: "https://github.com/nrolland/ghcjs/releases/download/v.0.2.0.20151230.3/ghcjs-0.2.0.20151230.3.tar.gz"
  1. 第二个错误正是因为它所说的:您缺少make实用程序。您需要使用 Linux 发行版的包管理系统来安装make. 由于我不知道您使用的是哪个发行版,因此我只能建议您简单地执行$ make命令并查看环境是否足够智能以指出可以在哪个包中找到它。Ubuntu 通常会这样做。然后只需要apt-get install-ing 软件包,或者可能yum install-ing 在例如 CentOS 和 Fedora 等上。

像您这样的 PS 问题通常会因为在诊断问题方面没有表现出足够的努力(或将 2 个完全独立的问题放在一个问题下)而遭到否决,但我让您受益匪浅,只是希望您会更整洁下次。

于 2016-01-25T16:37:16.727 回答