8

看来我错过了什么。据我了解cabal sandbox init,从当前文件夹和所有子文件夹开始,所有cabal install命令的范围都限定为沙箱。因此,此文件夹之外的所有内容都不在沙箱中。

那么 cabal-dev 的目的是什么?我应该使用cabal install还是cabal-dev install在沙箱中?

4

1 回答 1

21

TLDRcabal-dev是沙盒的初始解决方案,cabal sandbox是完全集成的实现。

直到几个月前,使用cabal. 对于任何库维护者或任何可能担心依赖冲突的人来说,这都是一个巨大的问题。为了解决这个问题,几个人却联合了一个工具,叫做cabal-dev. 它补充cabal并增加了沙盒的一些功能。

现在在这个存在了几年之后,在 1.18 版本中,cabal已经获得了沙盒!这意味着我们可以从使用cabal+切换cabal-dev到 just cabalsince cabalnow has subsumed cabal-dev

此外,由于沙盒完全集成到 cabal 中,它们可以很好地与其他 cabal 功能配合使用,cabal repl就像cabal-dev.

最后,最近在 Haskell-Cafe 邮件列表上的讨论表明,这cabal-dev不太可能被维护得更久,所以除了 1-2 个当前cabal sandbox的错误之外,没有理由不切换。

于 2013-11-02T03:59:37.793 回答