16

私が知ってcabalいるように、FreeBSDのようなパッケージのインストールを管理するプログラムpkg_addです。しかし、と呼ばれる別のツールがありますghc-pkg。なぜ2つの異なるプログラムがあるのか​​わかりません。それらのそれぞれの役割は何ですか、そしてそれらはどのように関連していますか?

4

2 に答える 2

12

Cabalは、「Haskellautotools」の一種であるHaskellの構築およびパッケージ化ライブラリです。.cabalファイルを読み取り、Haskellパッケージには通常、 Setup.hsCabalを使用してパッケージをビルドするファイルがあります。cabal次に、cabal-installパッケージによって提供されるコマンドもあります。スクリプトを実行するためのコマンドとSetup.hs、Hackageから直接パッケージをインストールするなどのいくつかのパッケージ管理機能を提供します。Ivan Miljenovicによるこのブログ投稿を読んでください。これは、Cabal、cabal-install、およびHackageの役割を非常によく説明しています。

ghc-pkgは、GHCのパッケージデータベースを突くための低レベルのツールです。CabalはすべてのHaskellコンパイラで動作することを目的としていますが、ghc-pkgは明らかにGHCに固有です。ghc-pkgを使用して何かをビルドすることはできません。それ以外の方法でビルドしたパッケージを登録するだけです。

于 2011-02-28T08:43:46.410 に答える
2

cabalは、いくつかの機能が追加されたghc-pkgへの単なるインターフェースレイヤーです。アンインストール機能はcabalに追加されていないため、ghc-pkgを知っていることが重要ですが、ghc-pkgを使用して直接実行できます。

于 2011-02-28T07:13:23.680 に答える