Haskell: установить пакет pureMD5 - PullRequest
2 голосов
/ 07 ноября 2019

Я пытаюсь определить, являются ли два файла одинаковыми, и обнаружил, что я могу создать хеш MD5 в Haskell из этого потока StackOverflow: Вычислить дайджест файла MD5 в Haskell

Когда я пытаюсь установить pureMD5 , я получаю сообщение об ошибке:

$ cabal install --lib pureMD5
Resolving dependencies...
cabal: Could not resolve dependencies:
[__0] trying: base-4.12.0.0/installed-4.1... (user goal)
[__1] trying: ghc-8.6.5/installed-8.6... (user goal)
[__2] next goal: process (user goal)
[__2] rejecting: process-1.6.6.0 (conflict: ghc =>
process==1.6.5.0/installed-1.6...)
[__2] rejecting: process-1.6.5.1, process-1.6.5.0/installed-1.6...,
process-1.6.5.0, process-1.6.4.0, process-1.6.3.0, process-1.6.2.0,
process-1.6.1.0, process-1.6.0.0, process-1.5.0.0, process-1.4.3.0,
process-1.4.2.0, process-1.4.1.0, process-1.4.0.0, process-1.3.0.0,
process-1.2.3.0, process-1.2.2.0, process-1.2.1.0, process-1.2.0.0,
process-1.1.0.2, process-1.1.0.1, process-1.1.0.0, process-1.0.1.5,
process-1.0.1.4, process-1.0.1.3, process-1.0.1.2, process-1.0.1.1,
process-1.0.0.0 (constraint from user target requires ==1.6.6.0)
[__2] fail (backjumping, conflict set: ghc, process)
After searching the rest of the dependency tree exhaustively, these were the
goals I've had most trouble fulfilling: process, base, ghc

Я не уверен, куда идти, я новичок в Haskell.

1 Ответ

1 голос
/ 08 ноября 2019

Это проблема клики, не связанная с pureMD5 (я полагаю). Вы можете попробовать установить в другой среде:

cabal new-install --package-env=SomeNewEnv --lib pureMD5

И это должно работать. Но почему? В общем, среда, в которую вы сейчас установили пакеты, выглядит примерно так:

cat ~/.ghc/x86_64-darwin-8.6.4/environments/default | tail
package-id rts
package-id terminfo-0.4.1.2
package-id transformers-0.5.6.2
package-id deepseq-1.4.4.0
package-id ghc-boot-th-8.6.4
package-id pretty-1.1.3.6
package-id template-haskell-2.14.0.0
package-id directory-1.3.3.0
package-id txt-1.2.4.0-09ee5c37
package-id mtl-2.2.2

Итак, вы видите, что она исправляет конкретную версию пакета - для вас она, вероятно, сохраняет process-1.6.5.0. Если вы удалите этот файл, то попытка установки process-1.6.6.0 будет успешной, и установка будет работать без --package-env.

Опять же, это предположение, основанное на ошибке и, как я думаю, вашей системе. состояние - пожалуйста, сделайте тест и сообщите.

РЕДАКТИРОВАТЬ: Для любопытных ошибка https://github.com/haskell/cabal/issues/5559

...