【问题标题】:GHC build error when attempting to build Cabal library尝试构建 Cabal 库时出现 GHC 构建错误
【发布时间】:2010-12-10 20:51:03
【问题描述】:

我正在尝试在我的系统上构建/安装 Cabal,但遇到了以下依赖错误:

SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ghc --make Setup
SDGL0990Z464C:Cabal-1.8.0.4 cflynn$ ./Setup configure
Configuring Cabal-1.8.0.4...
Setup: At least the following dependencies are missing:
base >=4 && <3 && >=1 && <5, filepath >=1 && <1.2

我已经安装了 GHC 7.0.1,据我所知 GHC 6.6.1 和后来的“文件路径”包?而且我不清楚“基地”到底指的是什么?

【问题讨论】:

  • GHC-7.0.1 已经有 Cabal-1.10.0.0,你不想降级它,因为它与那个版本的 GHC 是配对的。你真的想要 cabal-install 吗?我认为您需要等到新版本发布,很快(即本月)应该会有新版本,因为它是平台下一个版本的候选发布者所需要的。
  • @stephen,如果 cabal 带有 GHC,你能告诉我如何“启用”命令行客户端吗?我正在尝试在我的系统上安装 xmonad。
  • 嗨,凯西。命令行客户端是“cabal-install”。尽管 GHC 附带了 cabal 库的孪生版本,但“cabal-install”是一个更大的程序,而不仅仅是 cabal 库之上的可执行文件,因此直到 GHC 几周后才发布。如果您主要想要 xmonad,则最好使用 Haskell 平台,因此您必须退回到 GHC 6.12.4(或等待我认为计划在 1 月发布的下一个平台版本)。
  • 感谢@stephen tetley,我只是使用 GHC 卸载工具,我正在下载 haskell-platform-2010.2.0.0 希望这能让我取得更多进展:)

标签: haskell ghc cabal


【解决方案1】:

GHC 附带了一组已安装的库。当你运行上面的 build 命令时,cabal 想要“重新安装”一些 GHC 附带的旧版本的库。这很糟糕,原因很明显。

如果您确实需要这样做,使用cabal-dev 代替Cabal 可能会起作用。顺便说一句,使用Setup.hs 会调用编译器附带的Cabal 库版本,而运行cabal 命令会调用cabal-install 程序。

cabal-devcabal-install 的包装器(因此是 Cabal 库),它提供沙盒构建。可以安全地安装需要 GHC 随附的不同版本库的程序。剩下的问题是那些较旧的库是否会针对较新的 GHC 构建。在许多情况下,构建会失败。

我强烈建议您使用cabal-dev 而不是cabal-install 来构建您的日常包。沙盒的好处很多,而且大大超过了 cabal-install 通过为您已经安装的东西升级依赖链中间某处的包来破坏您的包数据库的风险。

关于使用cabal-dev的更多信息,我推荐这个reddit post

base 是一组 Haskell 模块,提供了每个 GHC 安装附带的大部分功能。它是大多数 Haskell 用户想要和需要的有用库的集合。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 2015-12-06
    • 2012-01-22
    • 1970-01-01
    • 2012-12-09
    相关资源
    最近更新 更多