【问题标题】:Haskell: Install pureMD5 packageHaskell:安装 pureMD5 包
【发布时间】:2019-11-07 19:27:38
【问题描述】:

我试图判断两个文件是否可能相同,并发现我可以通过这个 StackOverflow 线程在 Haskell 中创建 MD5 哈希:Compute MD5 digest of file in 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 的新手。

【问题讨论】:

    标签: haskell md5 cabal


    【解决方案1】:

    这是一个与 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

    【讨论】:

    • 虽然它有效,但我不明白后果是什么 - 如果我更好地了解阴谋集团的工作原理以及 cabal new-install 的作用会有所帮助......看起来阴谋集团在“环境”中工作" 或项目,我想知道运行 new-install 的后果是什么...
    • new-installinstall 在足够新的cabal 版本上是相同的,所以我不应该提到它。后果:GHC 和 cabal 使用环境来保存您“公开”的软件包列表 - 这些软件包不得冲突(不同版本的重复软件包)。当您cabal install 时,您说的是“安装此库并在我的默认环境中公开它”。你已经安装的东西使用了一个与你现在想要安装的不同版本的包。因为 GHC 环境是指向构建的指针,所以根据需要 rm 环境是合理的。
    猜你喜欢
    • 2013-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多