48

给定一组 cabal 包,有没有办法自动计算独立包的子集?换句话说,足以安装它们的软件包子集。

[network,parsec]答案是因为[network]network取决于parsec.

[network,containers]答案是因为[network,containers]

  • network不依赖于containers
  • 所有network的依赖不依赖于containers
  • containers不依赖于network
  • 所有containers的依赖不依赖于network

不难找到 2 个包的答案。真正有趣的是找出 的独立集[containers, directory, filepath, lens, xml, http-conduit, regex-posix, monad-control, unordered-containers, glib, hashable, hspec, split, aeson, attoparsec, stm, QuickCheck]


从答案中,我期望一些基于 cabal 库的功能,例如∷ [Packages] → IO [Packages].

4

1 回答 1

1

Cabal 正在转向更类似于 NPM 的模型,这将使​​依赖关系解析更加简单。每个安装的包都会保留其依赖项的本地副本,用一点磁盘空间来解决安装多个具有互斥包版本控制需求的全局包的麻烦。

在这种模式下,包的子集需要安装一组包==即设置。尽管一个可能是另一个的依赖项,但每个安装的副本都将保留其自己的依赖项的本地副本,因此 Cabal 不会再考虑以这种方式安装的依赖项。

于 2013-05-15T17:42:14.900 回答