2

システム内のパッケージが、グローバルまたはユーザー パッケージ データベースにあるかどうかに関係なく、現在の LTS Haskell のバージョンに対応する簡単な方法が必要です。

特定のプロジェクトでこのようなことを行うには、かなり簡単な方法があると思います。しかし、Haskell システム全体でこれを達成する方法は明確ではありません。私はすでに Stack をインストールしており (Cabal を使用)、可能な限り Homebrew を使用しています (たとえば、Haskell の場合、cabal-install. に誘惑されhaskell-stackますが、それが正確に何をするのかは不明です。

私のシステムの Haskell パッケージ (どこにあるかに関係なく) が LTS Haskell と一致することを確認する簡単な方法はありますか?


4

1 に答える 1

4

cabal-install を使用している場合、最善の策は、https: //www.stackage.org/lts-3.8/cabal.config?global=true の内容を追加することです(LTS スナップショット スラッグを好みに合わせて調整します)。あなたの~/.cabal/config。ただし、プロジェクトごとに異なるスナップショットを使用したい場合があるため、これを行うことには注意してください。cabal-install でサンドボックスを使用することを強くお勧めします (実際、require-sandbox: true忘れないように cabal 構成で設定しています)。

Stack の場合、LTS スナップショットは常にプロジェクト固有です。グローバル設定はありません。ただし、resolver:値を in に~/.stack/global/stack.yaml設定すると、特定のプロジェクトの外部で実行する場合に設定されstack、新しいプロジェクトのリゾルバーの選択にも影響します (stack initまたはを使用する場合stack new)。

ところで、Homebrewhaskell-stack式は Stack をインストールするための代替方法にすぎないように見えるため、既に Stack がある場合はそれを使用する必要はありません。

于 2015-10-04T18:59:53.540 に答える