Haskell:安装pureMD5包

Haskell:安装pureMD5包,haskell,md5,cabal,Haskell,Md5,Cabal,我试图判断两个文件是否可能相同,并发现我可以从这个StackOverflow线程在Haskell中创建MD5哈希: 当我尝试安装时,我得到一个错误: $ 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

我试图判断两个文件是否可能相同,并发现我可以从这个StackOverflow线程在Haskell中创建MD5哈希:

当我尝试安装时,我得到一个错误:

$ 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

我不知道从这里到哪里去,我是哈斯克尔的新手

这是一个与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
的情况下运行

同样,这是一个基于错误和我认为您的系统状态的猜测-请进行测试并报告


编辑:出于好奇,这个bug在运行时是

,我不明白后果是什么-如果我能更好地理解阴谋集团是如何工作的,以及新安装的阴谋集团有什么作用,这会有所帮助。。。似乎阴谋集团在“环境”或项目中运作,我想知道运行
new install
new install
install
在足够新的
cabal
版本上是一样的,所以我不应该提及它。后果:GHC和cabal使用一个环境来保存您“公开”的包的列表-这些包不能冲突(不同版本的包不能重复)。当您
cabal install
时,您说的是“安装此库并在我的默认环境中公开它”。您已经安装的软件包使用的版本与您现在要安装的版本不同。因为GHC环境是指向构建的指针,所以根据需要对环境进行rm是合理的。