1

現在、スタックでヘルムをインストールしようとしています。で簡単なプロジェクトを作成しました

stack new sandbox

ヘルムを依存関係として追加しましたsandbox.cabal

library
  hs-source-dirs:      src
  exposed-modules:     Lib
  build-depends:       base >= 4.7 && < 5
                     , helm
  default-language:    Haskell2010

その後、通常どおり実行すると、ファイルstack buildに追加する必要があることを示すエラーが表示されます。それも要件だったので、私はそれを行い、また挿入します。これは私のです:helm-0.7.1stack.yamlelerea-2.8.0stack.yaml

# Specifies the GHC version and set of packages available (e.g., lts-3.5, nightly-2015-09-21, ghc-7.10.2)
resolver: lts-3.12

# Local packages, usually specified by relative directory name
packages:
- '.'

# Packages to be pulled from upstream that are not in the resolver (e.g., acme-missiles-0.3)
extra-deps:
- helm-0.7.1
- elerea-2.8.0

# Override default flag values for local packages and extra-deps
flags: {}

# Extra package databases containing global packages
extra-package-dbs: []

# Control whether we use the GHC we find on the path
# system-ghc: true

# Require a specific version of stack, using version ranges
# require-stack-version: -any # Default
# require-stack-version: >= 0.1.4.0

# Override the architecture used by stack, especially useful on Windows
# arch: i386
# arch: x86_64

# Extra directories used by stack for building
# extra-include-dirs: [/path/to/dir]
# extra-lib-dirs: [/path/to/dir]

もう一度実行stack buildすると、このエラーが発生します。

While constructing the BuildPlan the following exceptions were encountered:

--  Failure when adding dependencies:    
      helm: needed (-any), couldn't resolve its dependencies
    needed for package: sandbox-0.1.0.0

--  Failure when adding dependencies:    
      cairo: needed (>0.12 && <0.13), 0.13.1.0 found (latest version available)
      mtl: needed (>=2.1 && <2.2), 2.2.1 found (latest version available)
      pango: needed (>0.12 && <0.13), 0.13.1.0 found (latest version available)
      sdl2: needed (>=1.1 && <1.3), 1.3.1 found (latest is 2.1.0)
      time: needed (>=1.4 && <1.5), 1.5.0.1 found (latest version available)
    needed for package: helm-0.7.1

このエラーはどういう意味ですか? 私が理解していることから、正しいバージョンが見つかりません。

4

1 に答える 1

1

つまり、使用しようとしているスタック リゾルバー (lts-3.12) は helm-0.7.1 と互換性がないということです。

たとえば、helm-0.7.1 には 0.12 から 0.13 の cairo バージョンが必要ですが、lts-3.12 でサポートされている cairo のバージョンは 0.13.1 です。他の制約についても同様です。

helm が実際に新しいバージョンの cairo で動作する可能性があります。それをテストするには、helm ソースをダウンロードし、cabal ファイルの依存関係を変更して、ローカル パッケージとしてスタック プロジェクトに含めます。

もう 1 つの提案は、カバール サンドボックスで構築されているかどうかを確認することです。

于 2015-11-23T16:07:22.057 に答える