ghc-pkg和cabal有什么关系?

时间:2010-04-25 00:13:16

标签: haskell ghc cabal

关于如何在Haskell中创建,安装和使用包,ghc-pkgcabal之间的关系是什么?

他们的角色是什么 - 你何时使用一个,另一个,或同时使用它们?

它们是辅助工具,竞争工具,还是只是做不同工作的工具?

2 个答案:

答案 0 :(得分:24)

图形上,依赖关系是:

Packages GHC can use
    | 
Are registered with "ghc-pkg register"
    |
And (almost always) built with Cabal
    |
With build dependencies resolved by cabal-install
    |
From Hackage.

答案 1 :(得分:8)

ghc-pkg是GHC包数据库的直接接口。 Cabal是一种为包提供一致的分发结构的工具,以及指定元数据的方法,例如包,版本号和构建信息之间的依赖关系。

使用Cabal安装软件包会为你注册ghc(除其他外),但实际上这就是重叠的程度。

请注意,ghc-pkg还提供(据我所知)Cabal没有的功能,例如隐藏已安装的软件包。