Как установить в стек пакет, которого в данный момент нет ни в одном снимке LTS?

Я пытаюсь установить следующие пакеты, но оба потерпели неудачу.

Я использую stack Version 1.3.2, Git revision 3f675146590da4f3edf768b89355f798229da2a5 x86_64 hpack-0.15.0 на Windows 10.

Я пробовал resolver: ghc-8.0.2 и resolver: ghc-7.8.4, но ни один из них не работает.

PS: я пытался добавлять дополнительные deps шаг за шагом, и в конце концов все равно не удалось, файл stack.yaml и сообщение об ошибке отмечено здесь


person luochen1990    schedule 14.02.2017    source источник
comment
Добавьте его в свои зависимости клики, и стек должен сказать вам, что делать.   -  person Reactormonk    schedule 14.02.2017
comment
Прочитайте документацию — в частности, вы, вероятно, захотите указать зависимости в extra-deps поле.   -  person user2407038    schedule 14.02.2017
comment
спасибо, но после добавления всех зависимостей шаг за шагом, это все равно не удалось...   -  person luochen1990    schedule 15.02.2017


Ответы (1)


Очистите список extra-deps в stack.yaml, измените преобразователь на lts-3.22, запустите stack solver --update-config (который должен автоматически добавить vacuum-cairo, SourceGraph и, возможно, несколько других пакетов в extra-deps) и запустите stack build для своего проекта (при условии, что зависимости в вашем файле .cabal объявлены правильно, нет необходимости запускать отдельный stack install $PACKAGE). Это, вероятно, сделает это.

Набор пакетов, предоставляемых в координации (то есть для каждого пользователя, а не для каждого проекта, и с гарантиями совместимости) ghc-* распознавателями, намного меньше, чем у распознавателей моментальных снимков (будь то LTS или nightly), что делает их излишне неудобными. Вообще говоря, единственная веская причина для использования преобразователя ghc-* — это отсутствие преобразователя моментальных снимков с версией GHC, которую вы хотите использовать, а здесь это не так.

Я выбрал несколько старый lts-3.22, потому что это последний преобразователь, предлагающий Cabal 1.22 и haskell-src-exts 1.16, версии, необходимые для SourceGraph. (В принципе, вы можете попробовать использовать пользовательскую версию SourceGraph с более либеральными ограничениями версии или попробовать allow-newer опцию Stack, но я предполагаю, что в этом конкретном случае вероятность неудачи высока. , так как описание пакета SourceGraph, вероятно, очень чувствительно к изменениям в GHC.) Я нашел версии пакетов, предлагаемых моментальным снимком, перейдя на своей странице на сайте Stackage.

person duplode    schedule 16.02.2017
comment
Clear the extra-deps list in stack-yaml, вы имеете в виду stack.yaml глобального проекта? - person luochen1990; 02.07.2018
comment
Я не устанавливаю этот пакет как зависимость от моего пакета, я устанавливаю его как инструмент командной строки. Что мне нужно сделать, чтобы установить его как инструмент командной строки без stack new пустого проекта? - person luochen1990; 02.07.2018
comment
(1) Да, я имел в виду stack.yaml (дефис был опечаткой), и глобальный файл проекта является соответствующим, если вы не работаете в контексте проекта. (2) Если бы SourceGraph находился в Stackage, работало бы что-то вроде stack install SourceGraph --resolver lts-3.2.2. Поскольку это не так, я предлагаю stack unpack SourceGraph (чтобы получить исходное дерево пакета), затем stack init (чтобы создать файл stack.yaml), затем исправив преобразователь и зависимости, как было предложено выше, и, наконец, stack install. (Позже я посмотрю на настройку этого ответа.) - person duplode; 02.07.2018
comment
Я использую stack init --solver, и это не удалось из-за конфликта версий deps, и stack.yaml не создается, поэтому я не могу добавить опцию allow-newer, и я попробовал stack init --solver --allow-newer, но теперь работает. - person luochen1990; 03.07.2018
comment
@luochen1990 luochen1990 Если вы еще не пробовали, я предлагаю stack init --solver --resolver lts-3.2.2. - person duplode; 03.07.2018
comment
Я попробовал stack init --solver --resolver lts-3.22 , и сообщается об ошибке, содержащей Unable to start C:\Users\Luo\AppData\Local\Programs\stack\x86_64-windows\ghc-7.10.2\mingw\bin/realgcc.exe (error code: 2) - person luochen1990; 03.07.2018
comment
@luochen1990 luochen1990 Кажется, это не связанная с этим проблема. проблема со стеком № 3189 кажется актуальной. - person duplode; 04.07.2018