8

それぞれ異なるバイナリ名を持つ異なるバージョンの GHC を使いたいとします。

質問 1. インストールごとに ./configure --prefix=ghc-some-version-dir を使用して、問題なくシンボリック リンク , を作成できますghc-7.4.1か?ghc-7.6.2ghc-head

つまり、ソースコードからバイナリをインストールして作成した後です。プロジェクトとその依存関係を構築するには、仮想環境を使用する必要があります。

ghc-version質問 2.バージョンに依存するバイナリ名を持つパッケージ名で ghc を Hackage にアップロードできない理由は何ですか? たとえば、 ~/.cabal/bin でcabal install ghc-version-7.6.2バイナリを取得できますghc-7.6.2

4

2 に答える 2

11

特別なことをする必要はありません。GHCは、バージョン付きの名前と、バージョンなしの名前から最近インストールされたバージョンへのリンク、たとえば「ghc」から「ghc-7.6.1」または最後にインストールしたものへのリンクを使用して、すべての実行可能ファイルを既にインストールしています。リポジトリからビルドする場合、バージョン番号は非常に長く、ビルドした日付が含まれます。

GHC が Hackage にない理由はよくわかりませんが、ビルド システムが非常に複雑であり、それを cabal 化する (および cabalization を維持する) のは、その価値よりも多くの作業になるためだと思います。

于 2013-03-27T23:31:06.343 に答える
3

いくつかの解決策があります

  • chrootを使用するだけです
  • nixなど、同じライブラリ/ソフトウェアの複数のバージョンを処理するパッケージ マネージャーを使用する
  • https://github.com/spl/multi-ghcなど、これを処理するために作成されたスクリプトがあります。
  • Brent Yorgey blog postで説明されているように、gnu stow を使用します。
  • Ben Millwood には、-wフラグを使用するだけの解決策があります。
于 2013-03-27T23:34:14.683 に答える