【问题标题】:What is the relationship between ghc-pkg and cabal?ghc-pkg 和 cabal 是什么关系?
【发布时间】:2011-02-11 23:53:30
【问题描述】:

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

他们的角色是什么 - 你什么时候使用一个,而不是另一个,或者同时使用两者?

它们是互补的工具、竞争的工具,还是只是完成不同工作的工具?

【问题讨论】:

    标签: haskell ghc cabal


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      从图形上看,依赖关系是:

      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 注册的包都必须是使用 Cabal 构建的吗?
      • 不,这不是真的。在过去糟糕的日子里,没有阴谋集团,我们用 make 注册了所有的包裹。 'make register' 脚本比比皆是。见ghc-pkg register
      猜你喜欢
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-14
      • 2013-06-14
      • 2018-02-16
      相关资源
      最近更新 更多