2012-03-24 9 views
2

私はhaskellでコースプロジェクトを持っています、これはMonadRandomhashableパッケージに依存します。haskellプロジェクトの依存関係を自動的にダウンロードしますか?

私は別のコンピュータ上のgitからのクローンを作成するたびに今、私は手順を通過する必要があり、それは次のようにsomethilng行く:

runhaskell Main.hs 
>Could not find module `Control.Monad.Random' 

--Google what package Control.Monad.Random is part of... MonadRandom! 
cabal install MonadRandom 

runhaskell Main.hs 
>Could not find module `Data.Hashable' 

--Google where Data.Hashable comes from.. ok `hashable`! 
cabal install hasahable 

runhaskell Main.hs 
> HELLO WORLD! 

はので、私はちょうど1を実行し、これを簡素化するが方法です。コマンド?例えば、Pythonのpiprequirementsでそれをしない:

pip install -r requirements.txt 

答えて

8

あなたのプロジェクトのために.cabalファイルを記述する場合、あなたはそれがcabal configurecabal install --only-dependenciescabal buildで構築され得ることができます。 (それは現在のディレクトリにビルドしたいだけなので、他のHaskellパッケージと一緒にインストールしたい場合は、手順はcabal installと同じです)

プロジェクトではcabal initを起動することができますディレクトリ - それはあなたに質問をして、不完全な.cabalファイルを出力し、簡単なものをあなたのために記入します。

Cabalは、すべてのHaskellプロジェクトの標準ビルドシステムです。したがって、できるだけ早い段階でCabalファイルを作成するのが一般的です。

this introduction to packaging things with Cabalも参照してください。

+0

ありがとうございました。唯一のことは、私は本当に私のプロジェクトをインストールしていない、またはそれを配布していないということです。依存関係を記録してインストールしたいだけなので...カブールが動作するかどうかわからない - 毎日プロジェクトコードを変更するので(毎回システムにそれを再インストールする必要がありますか?)私は申し訳ありませんあなたを誤解している。 – drozzy

+3

私が言ったように、プロジェクトをインストールせずにビルドしたいのであれば、 'cabal configure'と' cabal install --dependencies-only'(プロジェクトの依存関係のみをインストールする)から始めて、あなたのコードを変更するたびに「キャバルビルド」を実行します。 – ehird

+0

なぜ 'cabal configure'を実行する必要がありますか? – drozzy

2

Cabalを使用します。プロジェクトのファイル.cabalを作成し、レポをクローンした後にプロジェクトのルートディレクトリにcabal installを実行します。これにより、すべての依存関係が得られます。

大規模なプロジェクトでは、何らかの点でビルドするためのカバールファイルを取得するので、今すぐ使用することもできます。

+0

しかし、私は自分のプロジェクトをシステムにインストールしたくないです。依存関係をインストールするだけです。 'install'でこれができますか?また、@ ehirdの答えのように 'configure'を実行する必要がありますか? – drozzy

+0

ああ、 'install'は実際にあなたのプロジェクトをインストールします。もしあなたがそれをしたくなければ、あなたはehirdのコマンドを使うべきです。 –

関連する問題