什么是 Cabal 'world' 文件?

What is a Cabal 'world' file for?

~/.cabal/world 文件的作用是什么,它的内容是什么意思?我找不到任何文档并且对我在那里看到的内容感到困惑。

例如,它既不对应于我的用户数据库中的包,也不对应于我的全局包数据库,虽然它似乎只列出了我的用户数据库中的(一些)包,但它列出了一些我已经"removed" 与 ghc-pkg unregister.

据我所知,它会自动填充您明确请求的任何包(因此包括失败的安装)。这意味着如果你把它复制到另一台机器上,你可以做

cabal install world 

旨在复制您当前的设置。

当然,你可以背着 cabal 注销一个包,它不会知道从你的 world 文件中删除它。

(依赖项也将被安装,但我要强调的是,黑客在此期间会继续前进,如果你想要可重复的安装,使用堆栈工具可能更容易,它是其中之一主要设计目标。)