如何确保我的Haskell软件包与LTS Haskell匹配?

时间:2015-10-04 12:49:54

标签: haskell homebrew cabal-install haskell-stack

我希望有一种简单的方法来确保我的系统中的软件包,无论它们是在全局软件包还是用户软件包数据库中,都与当前LTS Haskell中的版本相对应。

我认为有fairly simple ways为特定项目做这样的事情。但是我不清楚如何为我的Haskell系统实现这一目标。我已经安装了Stack(使用Cabal),并且尽可能使用Homebrew(例如,对于Haskell,仅用于cabal-install)。我被haskell-stack诱惑,但目前还不清楚到底是做什么的。

有没有一种简单的方法可以确保我的系统的Haskell软件包(无论它们驻留在哪里)与LTS Haskell相匹配?

1 个答案:

答案 0 :(得分:4)

如果您正在使用cabal-install,最好的办法是将https://www.stackage.org/lts-3.8/cabal.config?global=true(根据您的偏好调整LTS快照slug)的内容附加到~/.cabal/config。但是,我要小心这样做,因为您可能希望为不同的项目使用不同的快照。强烈建议使用带有cabal-install的沙箱(实际上,我在我的cabal配置中设置require-sandbox: true以确保我不会忘记)。

对于Stack,LTS快照始终是项目特定的;没有全球设置。但是,在resolver:中设置~/.stack/global/stack.yaml值会在特定项目之外运行stack时设置它,并且还会影响新项目解析程序的选择(当您使用{{1}时}或stack init)。

顺便说一下,看起来Homebrew stack new公式只是安装Stack的另一种方式,所以如果你已经有了Stack,那么就不需要使用它了。