代码之家  ›  专栏  ›  技术社区  ›  Henricus V.

堆栈无法解析正确的包版本

  •  0
  • Henricus V.  · 技术社区  · 6 年前

    我想用 grenade 在哈斯克尔。使用 stack 作为配置工具,我有

    # stack.yaml
    
    extra-deps:
    - diagrams-solve-0.1.1
    - dual-tree-0.2.2
    - SVGFonts-1.6.0.3
    - diagrams-core-1.4.1
    - diagrams-lib-1.4.2.2
    - diagrams-postscript-1.4.1
    - diagrams-svg-1.4.2
    - Chart-diagrams-1.8.3
    - hip-1.5.3.0
    - singletons-2.2
    - template-haskell-2.11.1.0
    - th-desugar-1.6
    - grenade-0.1.0
    

    但当我执行 stack build ,它给出了以下错误

    Error: While constructing the build plan, the following exceptions were encountered:
    
    In the dependencies for th-desugar-1.6:
        template-haskell-2.12.0.0 from stack configuration does not match <2.12  (latest
                                  matching version is 2.11.1.0)
    needed due to Brain-0.1.0.0 -> th-desugar-1.6
    
    Some different approaches to resolving this:
    
      * Set 'allow-newer: true' to ignore all version constraints and build anyway.
    
      * Consider trying 'stack solver', which uses the cabal-install solver to attempt to
        find some working build configuration. This can be convenient when dealing with
        many complicated constraint errors, but results may be unpredictable.
    
      * Recommended action: try adding the following to your extra-deps
        in [Project directory]/stack.yaml:
    
    - template-haskell-2.11.1.0
    
    Plan construction failed.
    

    即使我把 - template-haskell-2.11.1.0 之前 diagrams-solve ,Stack仍然给出相同的错误。允许更新版本是不可行的,因为它会中断 th-desugar .

    1 回复  |  直到 6 年前
        1
  •  3
  •   Reactormonk    6 年前

    git clone git@github.com:HuwCampbell/grenade.git
    cd grenade
    stack init
    

    Looking for .cabal or package.yaml files to use to init the project.
    Using cabal packages:
    - ./
    - examples/
    
    Selecting the best among 13 snapshots...
    
    * Partially matches lts-11.13
        criterion version 1.3.0.0 found
            - grenade requires ==1.1.*
    
    Downloaded nightly-2018-06-16 build plan.    
    * Partially matches nightly-2018-06-16
        criterion version 1.4.1.0 found
            - grenade requires ==1.1.*
        hmatrix version 0.19.0.0 found
            - grenade requires ==0.18.*
            - grenade-examples requires ==0.18.*
        singletons version 2.4.1 found
            - grenade requires >=2.1 && <2.4
    
    * Partially matches lts-10.10
        criterion version 1.2.6.0 found
            - grenade requires ==1.1.*
    
    Downloaded lts-9.21 build plan.    
    * Matches lts-9.21
    
    Selected resolver: lts-9.21
    Initialising configuration using resolver: lts-9.21
    Total number of user packages considered: 2
    Writing configuration to file: stack.yaml
    All done.
    

    lts-9.21 grenade 将其添加到堆栈。