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

use*_*526 6 haskell ghc stackage haskell-stack

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

pha*_*dej 8

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

  1. 全球数据库 - 未触及
  2. stackage快照中的软件包安装在快照数据库中
  3. 每个项目在本地安装其他包

因此,大多数软件包都安装在快照数据库中,而不是污染全局数据库,因此大多数软件包都可以共享.由于堆叠快照中的包是兼容的(即总是一起编译),我们不会遇到Cabal地狱.

您可以使用stack ghcistack ghc运行配置了包数据库的相应命令.

更精确的解释是在堆栈维基中