#haskell #haskell-stack #happstack
#haskell #haskell-stack #happstack
Вопрос:
Я пытаюсь настроить приложение happstack-lite с помощью stack.
Я инициализировал проект с помощью этих команд:
stack new my-happstack
cd my-happstack
stack setup
Я изменил пакет.yaml, поэтому он содержит:
dependencies:
- base >= 4.7 amp;amp; < 5
- happstack-lite >= 7.3
Затем я несколько раз запускал сборку стека и менял дополнительные параметры в стеке.yaml в каталоге проекта в соответствии с рекомендациями (добавлены зависимости, такие как happstack-server).
По-видимому, меня попросили добавить в extra-deps уже перечисленные там пакеты с разными версиями и один с одинаковым (template-haskell-2.11.1.0):
стек.содержимое yaml:
extra-deps:
- happstack-lite-7.3.6
- happstack-server-7.4.6.4
- Win32-2.2.2.0@sha256:10ed55dd31315f386910c121c1d1d442df83bd2ee92090a753cd65300735a8ca
- network-2.6.3.6@sha256:1ca79d81af02d7acd6032d5e6c9bde4618a8fdcfbe19bd42b49d420183975df0
- template-haskell-2.11.1.0@sha256:f90d6ab73ad35c749e8547ca132e7ab5d32d2f8e7bb2e2ff6d597be26b58e061
- transformers-compat-0.5.1.4@sha256:1b4bfa8589afb1ca0e719129ab261bd90ef0cc3e6c0b9963f94970c082b61250
вывод из сборки стека:
F:ProjectsHaskellmy-happstack>stack build
Error: While constructing the build plan, the following exceptions were encountered:
In the dependencies for Cabal-2.4.1.0:
Win32-2.2.2.0 from stack configuration does not match >=2.3.0.0 amp;amp; <2.9 (latest matching
version is 2.8.3.0)
needed due to my-happstack-0.1.0.0 -> Cabal-2.4.1.0
In the dependencies for happstack-server-7.4.6.4:
template-haskell-2.14.0.0 from stack configuration does not match <2.12 (latest matching
version is 2.11.1.0)
needed due to my-happstack-0.1.0.0 -> happstack-server-7.4.6.4
In the dependencies for transformers-base-0.4.5.2:
transformers-compat-0.5.1.4 from stack configuration does not match >=0.6.1 (latest matching
version is 0.6.4)
needed due to my-happstack-0.1.0.0 -> transformers-base-0.4.5.2
Some different approaches to resolving this:
* Set 'allow-newer: true' in C:srconfig.yaml 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 F:ProjectsHaskellmy-happstackstack.yaml:
Win32-2.8.3.0@sha256:58fa6f52e8a0d455a74bb19445c177f2cc79a0975cae5fd96e2334bd38a516d4
template-haskell-2.11.1.0@sha256:f90d6ab73ad35c749e8547ca132e7ab5d32d2f8e7bb2e2ff6d597be26b58e061
transformers-compat-0.6.4@sha256:d298cd9d1bb7b05160229e244436bae825b53660865e3d5fd695ea0fafec1e6f
Plan construction failed.
Я пробовал эти шаги:
1) Установите «разрешить-новее: true» в C:srconfig.yaml . В этом случае я получаю сообщение об использовании неправильных типов внутри одного из зависимых пакетов (при необходимости могу вставить вывод ошибки по запросу).
2) Запустите stack solver. Я получил сообщение об ошибке от cabal planner (ошибка выводится по запросу).
Итак, я ожидаю, что stack будет разрешать зависимости так, как это делает npm — зависимости каждого пакета разрешаются независимо от потребностей других пакетов. Однако любые советы о том, как я могу решить эту конкретную проблему, будут полезны (включая ручное разрешение зависимостей).