我有一个大而复杂的包,它可以在两台计算机上编译,但不能在第三台计算机上编译(文件由 zip 和 scp 移动)。错误信息是
In the dependencies for leksah-0.17.0.0:
process-1.4.2.0 from stack configuration does not match >=1.4.3.0 && <1.7
(latest matching version is 1.6.4.0)
needed since leksah is a build target.
我找不到 process-1.4.2.0 的来源。它不在解析器 lts 9.9 中(解析器提供 process-1.4.3.0 进程库),也不在 leksah 的 cabal 文件中。我还应该去哪里看?(我在配置中有完全匹配)。
来自 global-project 的 stack.yaml 是
flags: {}
extra-package-dbs: []
packages: []
extra-deps: []
resolver: lts-10.4
config.yaml 仅包含(除了模板)compiler-check: match-exact
。
项目 stack.yaml 是
resolver: lts-9.9
packages:
- '.'
- 'vendor/leksah-server'
- 'vendor/ltk'
- 'vendor/haskellVCSGUI/vcsgui'
#- 'vendor/yi'
- 'vendor/haskellVCSWrapper/vcswrapper'
# Dependency packages to be pulled from upstream that are not in the resolver
# (e.g., acme-missiles-0.3)
extra-deps:
- binary-shared-0.8.3
- haddock-api-2.17.4
- haskell-gi-overloading-0.0
- gi-gtk-hs-0.3.5.0
- gi-gtksource-3.0.15
- gi-javascriptcore-4.0.14
- gi-soup-2.4.14
- gi-webkit2-4.0.14
- gi-gdk-3.0.14
- gi-gdkpixbuf-2.0.14
- gi-glib-2.0.14
- gi-gobject-2.0.14
- gi-gtk-3.0.17
- gi-cairo-1.0.14
- gi-gio-2.0.14
- gi-pango-1.0.15
- gi-atk-2.0.14
- gi-gtkosxapplication-2.0.14
# Override default flag values for local packages and extra-deps
flags:
gi-atk:
enable-overloading: false
gi-cairo:
enable-overloading: false
gi-gdk:
enable-overloading: false
gi-gdkpixbuf:
enable-overloading: false
gi-gio:
enable-overloading: false
gi-glib:
enable-overloading: false
gi-gobject:
enable-overloading: false
gi-gtk:
enable-overloading: false
gi-gtk-hs:
enable-overloading: false
gi-gtksource:
enable-overloading: false
gi-javascriptcore:
enable-overloading: false
gi-pango:
enable-overloading: false
gi-soup:
enable-overloading: false
gi-webkit2:
enable-overloading: false
gi-gtkosxapplication:
enable-overloading: false
# Extra package databases containing global packages
extra-package-dbs: []
cabal 文件包含(第一个是项目的相关文件,其他文件在包中)-它们都没有要求 process-1.4.2.0
process >=1.4.3.0 && <1.7,
process >= 1.0.1.1,
process >=1.0.1.5 && <1.7,
process >=1.0.1.5 && <1.7,
process >=1.0.1.5 && <1.7,
process >=1.0.1.5 && <1.7,
process >=1.0.1.5 && <1.7,
process >=1.1 && <1.7,
process >=1.1 && <1.7,
process >=1.1 && <1.7,
process >=1.1 && <1.7,
将 process-1.4.3.0 添加到额外的部门可以解决要求 - 但为什么这是必要的?它在 lts 9.9 中!- 正如预期的那样,它确实没有编译 - 必须有其他包与另一台计算机上的选择不同。