Haskellでパッケージがどのように作成され、インストールされ、使用されるかに関して、 ghc-pkgとcabalの関係は何ですか?
それらの役割は何ですか?どちらを使用するのか、もう一方を使用するのか、または両方を使用するのですか?
それらは補完的なツールですか、競争力のあるツールですか、それとも単に異なる仕事をするツールですか?
Haskellでパッケージがどのように作成され、インストールされ、使用されるかに関して、 ghc-pkgとcabalの関係は何ですか?
それらの役割は何ですか?どちらを使用するのか、もう一方を使用するのか、または両方を使用するのですか?
それらは補完的なツールですか、競争力のあるツールですか、それとも単に異なる仕事をするツールですか?
グラフィカルに、依存関係は次のとおりです。
Packages GHC can use
|
Are registered with "ghc-pkg register"
|
And (almost always) built with Cabal
|
With build dependencies resolved by cabal-install
|
From Hackage.
ghc-pkgは、GHCのパッケージデータベースへの直接インターフェイスです。Cabalは、パッケージの一貫した配布構造と、パッケージ間の依存関係、バージョン番号、ビルド情報などのメタデータを指定する方法を提供するツールです。
Cabalを使用してパッケージをインストールすると、(とりわけ)ghcに登録されますが、実際には、それが重複の範囲です。
ghc-pkgは、インストールされたパッケージを非表示にするなど、(私が知る限り)Cabalにはない機能も提供することに注意してください。