与堆积的cabal沙箱

时间:2015-05-04 20:25:36

标签: haskell cabal stackage

我想将我的全局cabal配置指向仅使用stackage LTS。

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

据我所知,由于所有项目都会使用一组保证一起构建的预定包装,因此不应该有任何阴谋。

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

1 个答案:

答案 0 :(得分:3)

为什么选择Sandboxes?

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

  • 并非每个软件包都处于堆叠状态,如果您最终使用库或依赖于不属于堆栈的内容,则无法保证它将与其余软件包一起使用。

    < / LI>
  • 沙箱除了防止阴谋之外还有其他用途。它们的另一个主要用途是能够添加本地目录作为包的源。例如,假设您已在本地磁盘~/code/a~/code/b上签出了两个软件包,并假设b取决于a。如果您想检查b是否适用于您对a所做的某些更改,则可以将您的本地a结帐添加为b&#39的来源; s cabal沙箱。

    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