首页 文章

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

提问于
浏览
2

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

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

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


1 回答

  • 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快照始终是项目特定的;没有全球设置 . 但是,在 ~/.stack/global/stack.yaml 中设置 resolver: 值会将其设置为在特定项目之外运行 stack ,并且还会影响新项目的解析程序选择(当您使用 stack initstack new 时) .

    顺便说一下,看起来Homebrew haskell-stack 公式只是安装Stack的另一种方式,所以如果你已经有了Stack,就没有必要使用它了 .

相关问题