3

我想指出我的全球阴谋集团配置仅使用堆栈 LTS。

在这种情况下,cabal 沙盒是否提供任何价值?

据我了解,应该不再有阴谋集团的地狱,因为所有项目都将使用一组预定的包,这些包保证可以一起构建。

有没有办法预先构建所有堆栈 LTS 包以加快所有未来的项目构建?

4

1 回答 1

3

为什么是沙盒?

我认为使用沙箱仍然有好处:

  • 并非每个包都在堆栈中,如果您最终使用库或依赖于不属于堆栈的内容,则无法保证它可以与其余包一起使用。

  • 除了防止阴谋集团地狱之外,沙盒还有其他用途。它们的另一个主要用途是能够添加本地目录作为包的来源。例如,假设您已经检查了本地磁盘上的两个包~/code/a~/code/b并且假设b依赖于a. 如果您想检查是否b适用于您所做的一些更改,a您可以将本地a结帐添加为bcabal 沙箱的源。

    cd ~/code/b
    cabal sandbox add-source ~/code/a
    cabal build
    

预构建 LTS 包

如果您已设置好预构建所有包,则可以使用以下命令安装 cabal.config 文件中列出的所有包。

cat cabal.config | sed -rn 's/^.* ([^ ]+) ==.*/\1/gp' | xargs cabal install
于 2015-05-05T03:23:10.553 回答