Сбой установки стека из-за ошибок установки пакета

Я пытаюсь запустить стек в первый раз, но запуск stack setup в примере проекта (из stack new helloworld new-template) завершается с ошибкой со следующим выводом (я пропустил начало, что, по-моему, было нормальным):

Installing library in
/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc7.10.2/ghc_JzwEp1oQ8kA7NFNTGk1ho5 "/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc-7.10.2/bin/ghc-pkg" --force --global-package-db "/home/ajl/.stack/programs/x86_64-linux/ghc-7.10.2/lib/ghc-7.10.2/package.conf.d" update rts/dist/package.conf.install
Reading package info from "rts/dist/package.conf.install" ... done.

: Warning: Unrecognized field 420 on line 420
(Skipped unrecognized field for every line 419 down to 1)
: Warning: Unrecognized field 1 on line 1
: missing id field
: invalid package identifier:
: invalid package key:
make[1]: *** [install_packages] Error 1
make: *** [install] Error 2

Installing GHC ...% 

Я на Ubuntu 14.04, использую стек 1.0.2. Не уверен, что это актуально, но у меня уже есть ghc 7.10.1 с Cabal 1.23.0.0, установленным в системе, которые отлично работают.

Я попытался изменить преобразователь на более старые версии LTS с более старыми версиями ghc. Я также попытался удалить ~/.stack. Не уверен, что еще попробовать, учитывая бесполезность ошибок.


person Alex    schedule 02.02.2016    source источник
comment
Я только что проверил вашу точную настройку (хорошо, одно отличие: использование ее в Windows прямо сейчас), и она работает нормально - я бы интерпретировал это как проблемы с rts/dist/package.conf.install - можете ли вы проверить, что там в строке 420, и, возможно, отредактировать свой вопрос, чтобы включить линии вокруг этого тоже?   -  person Random Dev    schedule 02.02.2016
comment
Где бы я его нашел? Его нет ни в ~/.stack, ни в каталоге проекта.   -  person Alex    schedule 02.02.2016
comment
это должно быть частью вашей базовой установки GHC   -  person Random Dev    schedule 02.02.2016
comment
не уверен на 100%, но вы можете попытаться удалить ghc-options из вашего .cabal (где находятся -rtsopts и т. д.) и повторить попытку - возможно, тогда он перестанет пытаться разобрать этот файл (просто для проверки)   -  person Random Dev    schedule 02.02.2016
comment
Попробовал, но не помогло. Я не могу найти package.conf.install в моей локальной установке ghc (нашел в /usr, чтобы быть уверенным). Половина причин, по которым я хочу использовать стек, заключается в том, что он в любом случае автономен. Разве он не должен ничего получать с моей локальной машины?   -  person Alex    schedule 02.02.2016
comment
хорошо зависит - например, он будет использовать локальный GHC (на вашем пути), что является хорошей идеей IMO   -  person Random Dev    schedule 02.02.2016
comment
Я удалил ghc из системы, переустановил стек, удалил ~/.stack ~/.ghc ~/.cabal и все та же ошибка.   -  person Alex    schedule 03.02.2016


Ответы (1)


Я понял. Сборка GHC использует grep для создания packages.conf.install. У меня установлено GREP_OPTIONS=--color=auto -n в моей конфигурации zsh. -n ставил номера строк перед всем, что вызывало ошибки.

Причина, по которой я нигде раньше не мог найти packages.conf.install, заключается в том, что он создается на лету во время GHC make. И стек делает это в /tmp.

person Alex    schedule 03.02.2016