如何确保我的 Haskell 包匹配 LTS Haskell?
How do I ensure that my Haskell packages match LTS Haskell?
我想要一种简单的方法来确保我系统中的软件包,无论它们是在全局还是用户软件包数据库中,都与当前 LTS Haskell 中的版本相对应。 =15=]
我了解到有 fairly simple ways to do something like this for a specific project. But it's not clear to me how to achieve this for my Haskell system as a whole. I have Stack installed already (using Cabal), and use Homebrew where I can (e.g., for Haskell, just for cabal-install
). I'm tempted by haskell-stack
,但不清楚具体是做什么的。
有没有简单的方法来确保我系统的 Haskell 软件包(无论它们位于何处)匹配 LTS Haskell?
如果您正在使用 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 init
或 stack new
).
顺便说一句,看起来 Homebrew haskell-stack
公式只是安装 Stack 的另一种方法,因此如果您已经拥有 Stack,则无需使用它。
我想要一种简单的方法来确保我系统中的软件包,无论它们是在全局还是用户软件包数据库中,都与当前 LTS Haskell 中的版本相对应。 =15=]
我了解到有 fairly simple ways to do something like this for a specific project. But it's not clear to me how to achieve this for my Haskell system as a whole. I have Stack installed already (using Cabal), and use Homebrew where I can (e.g., for Haskell, just for cabal-install
). I'm tempted by haskell-stack
,但不清楚具体是做什么的。
有没有简单的方法来确保我系统的 Haskell 软件包(无论它们位于何处)匹配 LTS Haskell?
如果您正在使用 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 init
或 stack new
).
顺便说一句,看起来 Homebrew haskell-stack
公式只是安装 Stack 的另一种方法,因此如果您已经拥有 Stack,则无需使用它。