当我cabal --version
时,我看到了:
cabal-install version 0.14.0
using version 1.14.0 of the Cabal library
那有什么区别?我认为当我做cabal build
时,我只使用一个程序。为什么它分成两个不同版本的独立程序?
答案 0 :(得分:7)
Cabal
库定义如何解析和结构化包描述,并描述构建和安装包的过程的一部分。 cabal-install
包定义了cabal
应用程序。它使用库来有效地理解包描述是什么。
这是软件的通用结构:在库中实现所有纯的和可重用的业务逻辑(Cabal
库完成大部分(但不是全部)与包描述完全相关的工作),并实现所有您的用户界面内容和其他详细信息'在使用该库的应用程序中(cabal-install
包定义了CLI工具,并实现了从Hackage中获取包的详细信息。)