为什么不将包添加到ghc包数据库?

时间:2015-07-13 20:49:24

标签: haskell ghc stackage haskell-stack

我决定尝试给堆叠一次。我安装了它并用它来安装最新版本的ghc。我已经使用堆栈来安装一些软件包,但ghc看不到软件包,当我用ghc-pkg列出软件包时,我看到我通过堆栈安装的软件包不在那里。为什么是这样?我误解了堆栈的目的吗?

1 个答案:

答案 0 :(得分:8)

Stack永远不会触及全局包数据库。它使用分层数据库方法

  1. 全球数据库 - 未触及
  2. stackage快照中的软件包已安装到快照数据库
  3. 每个项目在本地安装其他软件包
  4. 因此,大多数软件包都安装在快照数据库中,而不是污染全局数据库,因此大多数软件包都可以共享。由于堆叠快照中的包是兼容的(即总是一起编译),我们不会遇到 Cabal地狱

    您可以使用stack ghcistack ghc在配置包数据库的情况下运行相应的命令。

    stack wiki

    中更准确的解释