【问题标题】:cabal failed to install mtl missing dependency of transformerscabal 未能安装 mtl 缺少变压器的依赖项
【发布时间】:2016-06-21 12:40:36
【问题描述】:

我试图使用 cabal 安装 mtl,但它告诉我我错过了 transformers ==0.4.* && ==0.5.2.0

$ cabal install mtl
Resolving dependencies...
Configuring mtl-2.2.1...
cabal.exe: At least the following dependencies are missing:
transformers ==0.4.* && ==0.5.2.0
cabal.exe: Error: some packages failed to install:
mtl-2.2.1 failed during the configure step. The exception was:
ExitFailure 1

我在这里呆了将近一个星期。我在 0.4.3.0 和 0.5.2.0 版本中安装了变压器。我的 cabal 是 1.10.2.0 版本,我的 ghc 是 7.6.3。我是 ghc 的新手,所以我不知道是什么问题。我不明白transformers ==0.4.* 是什么意思。有什么建议么?非常感谢!

【问题讨论】:

  • 需要两个不同版本的转换器这一事实令人担忧。您的安装有问题。你在使用沙盒吗?

标签: cabal-install


【解决方案1】:

线

transformers ==0.4.* && ==0.5.2.0

是对转换器库版本的依赖约束。这里声明它要求转换器版本同时为 0.4.* 和 0.5.2.0。 虽然可以安装不同的版本,但在编译过程中只能使用一个版本——因此,这个约束永远无法满足。

由于某些原因,cabal 似乎与 mtl 包的两个 revisions 混淆了。 第二个版本增加了对 transformers-5 的支持。也可以看mtl的issue 30,这里注意到hackage的元数据是第二个revision,但是最后下载的source tarball是原始revision。

在发布新的版本 mtl 之前,您必须显式安装transformers-0.4.3.0(并且该版本)然后安装mtl。

cabal install transformers-0.4.3.0

如果在安装 mtl 时满足依赖,transformers-0.4.3.0 将通过依赖检查。 安装该版本时,cabal 似乎会自动将最新版本添加为依赖项(例如== transformers-0.5.2.0)。因此,应该只安装 0.4.* 版本。

如果你已经安装了最新的变形金刚版本,可以uninstall it

ghc-pkg unregister --force transformers-0.5.2.0
rm -r .cabal/packages/hackage.haskell.org/transformers/0.5.2.0

(对安装的每个 5.x 版本执行此操作,请参阅cabal info transformers 以获取已安装版本的列表。)

【讨论】:

  • 这也间接阻止了我通过 cabal 安装 xmobar。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-10
  • 1970-01-01
  • 1970-01-01
  • 2011-09-22
  • 2015-05-27
  • 2022-11-09
相关资源
最近更新 更多