2012-03-12 21 views
4

これは実際にはHow can I tell Cabal which dependency to use?の後続の質問です。 2つの依存関係を持っているhaskell-src-meta私のプログラムの依存関係の1つに依存関係を指定するようにcabalに指示するにはどうすればよいですか?

パッケージ:

template-haskell >=2.7 && <2.9, 
template-haskell >=2.4 && <2.7 

template-haskell 2.7が私のシステム上に構築しません。

cabal install --constraint="template-haskell == 2.5.0.0" haskell-src-meta 

しかし、私はこれらの依存関係を持っている私が作成したソフトウェアのための独自のファイルを書きたいと思っています。

Build-depends: template-haskell-2.5.0.0 

代わりに、私は実際にhaskell-src-metaはビルド依存関係であることを言いたいが、さらにそれが上記と同じconstraintとその依存関係をインストールする必要があることを徒党言う:持っているのに十分ではないようです。これを行う方法はありますか?

答えて

1

"インストール済み"という制約が必要なのかもしれません。

cabal install --constraint "template-haskell installed" my-custom-package 
+0

おそらく、私のソフトウェアをインストールするすべての(想像された)ユーザーにそれを漏らしてしまうのは残念です。むしろ、 'cabal install my-app'とタイプして、その' template-haskell'依存関係を私のcabalファイルに焼き付けられるようにするだけでした。 –

+1

@NoahDaniels Hm。 'template-haskell'の他のバージョンがあなたのコンピュータ上に構築されないので、他の人に' template-haskell-2.5.0.0'を使用させたいのですか?これは悪い考えです。なぜなら、人々は、コンパイラに付属の 'template-haskell'のバージョンを使用して、別のバージョンをビルドしようとしないでください。 –

+0

'template-haskell'のバージョンは' ghc'バージョンに依存しているようです。私が理想的にやってみたいのは、 'ghc'バージョンを適切な' template-haskell'バージョンにマップし、そのように問題を解決することです。 –

関連する問題