2011-02-28 10 views
16

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

+0

http://stackoverflow.com/questions/2706667/what-is-the-relationship-between-ghc-pkg-and-cabal – Boris

+0

@Borisなぜ私は私と一緒にそれを見つけることができなかったのか分かりませんタイトル... – Eonil

+0

はい、それは奇妙です。彼らは非常に似ています。 – Boris

答えて

12

Cabalは「Haskell autotools」のようなHaskell用のビルディングおよびパッケージングライブラリです。それは.cabalファイルを読み取り、Haskellパッケージは通常Cabalを使用してパッケージを構築するファイルSetup.hsを持っています。次に、cabal-installパッケージによって提供されるcabalコマンドもあります。 Setup.hsスクリプトを実行するためのコマンドと、Hackageから直接パッケージをインストールするなどのいくつかのパッケージ管理機能を提供します。 Cabal、Cabal-Install、Hackageの役割については、this blogpost by Ivan Miljenovicをよく読んでください。

ghc-pkgは、GHCのパッケージデータベースをポンピングするための下位レベルのツールです。 CabalはすべてのHaskellコンパイラで動作することを意図していますが、ghc-pkgは明らかにGHC固有のものです。 ghc-pkgを使って何かをビルドすることはできません。そうでなければビルドしたパッケージを登録するだけです。

2

cabalはghc-pkgのインターフェイス層にすぎず、いくつかの機能が追加されています。アンインストール機能はカバールに追加されていないのでghc-pkgを知ることが重要ですが、ghc-pkgを使って直接実行することもできます。

+1

ghc-pkgはアンインストールできません。あなたはおそらく登録を解除することを意味しました。登録を解除しても、登録されていないパッケージを使用することはできます。したがって、アンインストールではありません。 –

関連する問題