`ghc-pkg`和`cabal`程序如何相关?(Haskell的)

Eon*_*nil 16 haskell role relationship ghc cabal

据我所知,这cabal是一个管理FreeBSD软件包安装的程序pkg_add.但还有另一个工具叫做ghc-pkg.我不知道为什么有两个不同的程序.他们每个人的角色是什么?他们是如何相关的?

Mii*_*kka 12

Cabal是Haskell的建筑和包装库,有点像"Haskell autotools".它读取.cabal文件和Haskell包通常有一个文件Setup.hs,使用Cabal来构建包.然后还有cabalcabal-install软件包提供的命令.它提供了运行Setup.hs脚本和一些包管理功能的命令,比如直接从Hackage安装包.你应该阅读Ivan Miljenovic撰写的这篇博文,其中很好地解释了Cabal,cabal-install和Hackage的作用.

ghc-pkg是一个用于戳GHC包数据库的低级工具.Cabal旨在与每个Haskell编译器一起使用,而ghc-pkg显然特定于GHC.你不能使用ghc-pkg来构建任何东西,你可以只注册你已经构建的包.