簡體   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