【问题标题】:cabal sandbox with stackage带有堆栈的阴谋集团沙箱
【发布时间】:2015-05-04 20:25:35
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: haskell cabal stackage


    【解决方案1】:

    为什么是沙盒?

    我认为使用沙盒还是有好处的:

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

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

      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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      相关资源
      最近更新 更多