为什么在 "stack test" 工作时我会收到构建计划错误 运行 "stack haddock"?
Why am I getting build plan errors running "stack haddock" when "stack test" works?
我正在 Windows 8 上使用 Stack 0.1.3.1 创建一个新的 Haskell 项目。我的 stack.yaml
文件如下所示:
flags: {}
packages:
- 'lazy-engine'
extra-deps: []
resolver: lts-3.4
当我 运行 stack build
或 stack test
时,一切都很好。我可以从命令行手动 运行 haddock
并且也可以。但是当我 运行 stack haddock
我得到这样的输出:
Setting codepage to UTF-8 (65001) to ensure correct output from GHC
NOTE: the haddock command is functionally equivalent to 'build --haddock'
While constructing the BuildPlan the following exceptions were encountered:
-- Failure when adding dependencies:
base: needed (>=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
needed for package: array-0.5.1.0
-- While attempting to add dependency,
Could not find package base in known packages
-- Failure when adding dependencies:
array: needed (-any), latest is 0.5.1.0, but couldn't resolve its dependencies
base: needed (>=4.2 && <5), latest is 4.8.1.0, but not present in build plan
deepseq: needed (>=1.2 && <1.5), latest is 1.4.1.2, but couldn't resolve its dependencies
ghc-prim: needed (-any), latest is 0.4.0.0, but not present in build plan
needed for package: containers-0.5.6.2
-- Failure when adding dependencies:
array: needed (>=0.3 && <0.6), latest is 0.5.1.0, but couldn't resolve its dependencies
base: needed (==4.3.* || >=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
needed for package: deepseq-1.4.1.1
-- While attempting to add dependency,
Could not find package ghc-prim in known packages
-- Failure when adding dependencies:
base: needed (>=4.7 && <5), latest is 4.8.1.0, but not present in build plan
containers: needed (==0.5.*), latest is 0.5.6.3, but couldn't resolve its dependencies
needed for package: lazy-engine-0.1.0.0
Recommended action: try adding the following to your extra-deps in
C:\Users\Aaron\Documents\GitHub\lazy-engine\stack.yaml
- base-4.8.1.0
- ghc-prim-0.4.0.0
You may also want to try the 'stack solver' command
显然这是无稽之谈——我不应该将 base
添加到我的 extra-deps
,特别是因为我正在使用 LTS 软件包集!这是怎么回事?
更新: 如 , this seems to have been a bug in stack and should be fixed in newer versions. See https://github.com/fpco/minghc/issues/85 中所述。
一个猜测:您正在使用不包含文档的 GHC 安装,或者至少不像堆栈期望的那样被发现。你能试试“--install-ghc --no-system-ghc”吗?我可能有错误的特定标志名称。
另外,您的系统上是如何安装 GHC 的?
我通过安装 ghc-doc
包(在大多数包管理器中可用)解决了这个问题。
我正在 Windows 8 上使用 Stack 0.1.3.1 创建一个新的 Haskell 项目。我的 stack.yaml
文件如下所示:
flags: {}
packages:
- 'lazy-engine'
extra-deps: []
resolver: lts-3.4
当我 运行 stack build
或 stack test
时,一切都很好。我可以从命令行手动 运行 haddock
并且也可以。但是当我 运行 stack haddock
我得到这样的输出:
Setting codepage to UTF-8 (65001) to ensure correct output from GHC
NOTE: the haddock command is functionally equivalent to 'build --haddock'
While constructing the BuildPlan the following exceptions were encountered:
-- Failure when adding dependencies:
base: needed (>=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
needed for package: array-0.5.1.0
-- While attempting to add dependency,
Could not find package base in known packages
-- Failure when adding dependencies:
array: needed (-any), latest is 0.5.1.0, but couldn't resolve its dependencies
base: needed (>=4.2 && <5), latest is 4.8.1.0, but not present in build plan
deepseq: needed (>=1.2 && <1.5), latest is 1.4.1.2, but couldn't resolve its dependencies
ghc-prim: needed (-any), latest is 0.4.0.0, but not present in build plan
needed for package: containers-0.5.6.2
-- Failure when adding dependencies:
array: needed (>=0.3 && <0.6), latest is 0.5.1.0, but couldn't resolve its dependencies
base: needed (==4.3.* || >=4.5 && <4.9), latest is 4.8.1.0, but not present in build plan
needed for package: deepseq-1.4.1.1
-- While attempting to add dependency,
Could not find package ghc-prim in known packages
-- Failure when adding dependencies:
base: needed (>=4.7 && <5), latest is 4.8.1.0, but not present in build plan
containers: needed (==0.5.*), latest is 0.5.6.3, but couldn't resolve its dependencies
needed for package: lazy-engine-0.1.0.0
Recommended action: try adding the following to your extra-deps in
C:\Users\Aaron\Documents\GitHub\lazy-engine\stack.yaml
- base-4.8.1.0
- ghc-prim-0.4.0.0
You may also want to try the 'stack solver' command
显然这是无稽之谈——我不应该将 base
添加到我的 extra-deps
,特别是因为我正在使用 LTS 软件包集!这是怎么回事?
更新: 如
一个猜测:您正在使用不包含文档的 GHC 安装,或者至少不像堆栈期望的那样被发现。你能试试“--install-ghc --no-system-ghc”吗?我可能有错误的特定标志名称。
另外,您的系统上是如何安装 GHC 的?
我通过安装 ghc-doc
包(在大多数包管理器中可用)解决了这个问题。