Cabal Install устраняет зависимости - PullRequest
1 голос
/ 04 октября 2019

Я следую этому уроку, пытаясь настроить проект на Haskell: http://shuklan.com/haskell/lec10.html#/0/9

У меня раньше была эта проблема с 'cabal install'.

Я получаю сообщение ниже. Я прочитал, чтобы попробовать 'rm -rf ~ / .ghc ~ / .cabal'. Я попробовал это и снова «установил cabal» вместе с «cabal new-build», но все равно получаю то же сообщение.

Как я могу это исправить? Я на Mac OS X 10.11.4. Я могу создавать и запускать файлы .hs и использовать ghci. Я никогда не создавал «файловую структуру» или что-то подобное с другими языками программирования, поэтому я не знаком с тем, что с этим связано.

Спасибо !!


Please switch to using either the new project style and the new-install
command or the legacy v1-install alias as new-style projects will become the
default in the next version of cabal-install. Please file a bug if you cannot
replicate a working v1- use case with the new-style commands.

For more information, see: https://wiki.haskell.org/Cabal/NewBuild

Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: FirstCabalInit-0.1.0.0 (user goal)
[__1] next goal: base (dependency of FirstCabalInit)
[__1] rejecting: base-4.12.0.0/installed-4.1... (conflict: FirstCabalInit =>
base==4.6.*)
[__1] rejecting: base-4.12.0.0, base-4.11.1.0, base-4.11.0.0, base-4.10.1.0,
base-4.10.0.0, base-4.9.1.0, base-4.9.0.0, base-4.8.2.0, base-4.8.1.0,
base-4.8.0.0, base-4.7.0.2, base-4.7.0.1, base-4.7.0.0, base-4.6.0.1,
base-4.6.0.0, base-4.5.1.0, base-4.5.0.0, base-4.4.1.0, base-4.4.0.0,
base-4.3.1.0, base-4.3.0.0, base-4.2.0.2, base-4.2.0.1, base-4.2.0.0,
base-4.1.0.0, base-4.0.0.0, base-3.0.3.2, base-3.0.3.1 (constraint from
non-upgradeable package requires installed instance)
[__1] fail (backjumping, conflict set: FirstCabalInit, base)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: base, FirstCabalInit ```

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Вы можете найти следующее руководство по созданию инструментов в Haskell полезным:

В соответствии с сообщением об ошибке, оно выглядит как в .cabalфайл у вас есть строка типа

build-depends: base == 4.6.*

Эта версия стандартной библиотеки base очень старая, она соответствует GHC-7.6, однако, согласно сообщению об ошибке, у вас есть GHC-8.6.5установлен. Поскольку base версии связаны с GHC, вы не можете использовать base для GHC, который вы не установили. См. Следующий список соответствующих версий base и GHC:

Похоже, что ваша ошибка может быть исправлена ​​следующим исправлением:

build-depends: base == 4.12.*

В будущем я могу порекомендовать использовать инструмент ghcup для управления версиями GHC и cabal-install в macOS:

Кроме того, вы можете использовать stack инструмент сборки, он управляет версиями GHC для вас в изолированной папке.

0 голосов
/ 07 октября 2019

Знаменитый "Cabal Hell".

Вам лучше использовать новейший менеджер пакетов https://docs.haskellstack.org/en/stable/README/.

...