Очистите extra-deps
список в stack-yaml
, изменить распознаватель к lts-3.22
запустите stack solver --update-config
(который должен автоматически добавлять вакуумно-Каир, SourceGraph и, возможно, несколько других пакетов к extra-deps
) и запустить stack build
для вашего проекта (если предположить, что зависимость в .cabal файла объявляется правильно, нет необходимости для запуска отдельного stack install $PACKAGE
). Скорее всего, это сделает.
Набор пакетов, предоставляемых по согласованию (то есть для каждого пользователя, в отличие от каждого проекта и с гарантиями совместимости) с помощью преобразователей ghc-*
намного меньше, чем у преобразователей моментальных снимков (будь то LTS или ночной), что делает они излишне неудобны. В широком смысле, единственная веская причина для использования преобразователя ghc-*
- это отсутствие распознавателя снимков с версией GHC, которую вы хотите использовать, что здесь не так.
Я выбрал несколько старых lts-3.22
, потому что это последний распознаватель предлагая Cabal 1,22 и Haskell-Src-exts 1.16, версии, необходимые SourceGraph. (В принципе, вы можете попробовать использовать пользовательскую версию SourceGraph с более либеральными ограничениями по версии или предоставить allow-newer
вариант Stack a shot, но я предполагаю, что в этом конкретном случае шансы сбоя высоки, как указано в пакете описание SourceGraph, вероятно, очень чувствителен к изменениям в GHC.) Я нашел версии пакетов, предлагаемые моментальным снимком, выбрав its page in the Stackage site.
Добавьте свои зависимости в кабале, и стек должен сказать вам, что делать. – Reactormonk
[Read the docs] (https://docs.haskellstack.org/en/stable/yaml_configuration/) - в частности, вы, вероятно, захотите указать зависимости в поле 'extra-deps'. – user2407038
thx, но после добавления всех зависимостей шаг за шагом он по-прежнему не удался ... – luochen1990