【发布时间】:2011-02-11 23:53:30
【问题描述】:
关于Haskell中包是如何创建、安装和使用的,ghc-pkg和cabal是什么关系?
他们的角色是什么 - 你什么时候使用一个,而不是另一个,或者同时使用两者?
它们是互补的工具、竞争的工具,还是只是完成不同工作的工具?
【问题讨论】:
关于Haskell中包是如何创建、安装和使用的,ghc-pkg和cabal是什么关系?
他们的角色是什么 - 你什么时候使用一个,而不是另一个,或者同时使用两者?
它们是互补的工具、竞争的工具,还是只是完成不同工作的工具?
【问题讨论】:
ghc-pkg 是 GHC 包数据库的直接接口。 Cabal 是一种工具,它为包提供一致的分发结构,并提供一种指定元数据的方法,例如包之间的依赖关系、版本号和构建信息。
使用 Cabal 安装软件包会为您注册 ghc(除其他外),但这就是重叠的程度,真的。
请注意,ghc-pkg 还提供了(据我所知)Cabal 没有的功能,例如隐藏已安装的软件包。
【讨论】:
从图形上看,依赖关系是:
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.
【讨论】:
ghc-pkg register