繁体   English   中英

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

[英]How are `ghc-pkg` and `cabal` programs related? (Haskell)

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

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

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

cabal只是ghc-pkg的一个界面层,增加了一些功能。 了解ghc-pkg非常重要,因为卸载功能未添加到cabal,但可以直接使用ghc-pkg完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM