我想指出我的全球阴谋集团配置仅使用堆栈 LTS。
在这种情况下,cabal 沙盒是否提供任何价值?
据我了解,应该不再有阴谋集团的地狱,因为所有项目都将使用一组预定的包,这些包保证可以一起构建。
有没有办法预先构建所有堆栈 LTS 包以加快所有未来的项目构建?
我认为使用沙箱仍然有好处:
并非每个包都在堆栈中,如果您最终使用库或依赖于不属于堆栈的内容,则无法保证它可以与其余包一起使用。
除了防止阴谋集团地狱之外,沙盒还有其他用途。它们的另一个主要用途是能够添加本地目录作为包的来源。例如,假设您已经检查了本地磁盘上的两个包~/code/a
,~/code/b
并且假设b
依赖于a
. 如果您想检查是否b
适用于您所做的一些更改,a
您可以将本地a
结帐添加为b
cabal 沙箱的源。
cd ~/code/b
cabal sandbox add-source ~/code/a
cabal build
如果您已设置好预构建所有包,则可以使用以下命令安装 cabal.config 文件中列出的所有包。
cat cabal.config | sed -rn 's/^.* ([^ ]+) ==.*/\1/gp' | xargs cabal install