2017-06-23 13 views
0

私はスタックを使い始めていますが、ハッキングには含まれているが、キューイングされていないビルドには含まれていないパッケージを引き出す方法は完全にはわかりません。スタックを持つhackageパッケージをインストールする(LTSでも夜間でもない)

特に、私はthrift-0.10.0を引き入れたいと思います。 project.cabalファイルでは指定できないようですが、extra-depsセクションもこのパッケージを含むリゾルバがないため動作しません。

私はstack install thrift-0.10.0を実行すると、私は次のエラーが表示されます

While constructing the build plan, the following exceptions were encountered: 
In the dependencies for thrift-0.10.0: 
    vector-0.11.0.0 must match ==0.10.12.2 (latest applicable is 0.10.12.2) 

私がする(a)は何stack install本当にわからないんだけど、および(b)は倹約パッケージ指定するので、ビルド計画を解決する方法ベクトル-0.10.12.2パッケージの等号(==)。私がvector == 0.10.12.2を私のpackage.cabalに含めると、それも失敗します。以前のリゾルバを指定する必要がありますか?

私はこのビルド・ツールについて学ぶことがたくさん持って実現するが、この場合には、何のドキュメントは、容易に入手できるようだそのために私の主な質問は、次のとおりです。

how do I include a hackage package in my stack build?

答えて

1

nor does the extra-deps section work since there is no resolver that contains this package.

余分-depsのは、いずれかを含めることができますハッキングパッケージ。/binに

インストールを.localのための実行ファイルのパッケージ+コピーのビルドの依存関係のために使用されるべきではない。それはちょうど、代わりにそれはhackageからローカルのプロジェクト/アプリケーションに使用されなければならないん

(a) what stack install does

(実行可能ファイルを含むパッケージ)。倹約パッケージはそのような(==)制約を持っているため、プロジェクトの依存関係をインストールしてもメリットはありませんが、代わりに彼らはstack.yaml

(b) how to resolve the build plan since the thrift package specifies an equality (==) on the vector-0.10.12.2 package.

で指定する必要があり、それは本当に醜いようです。それを回避するには、stack.yamlで "allow-newer:true"を実行するか(制約を無視させる)。 。または、おそらくより良い、あなたの余分なDEPSに `ベクトル0.10.12.2" を追加

for which no documentation seems readily available is:

how do I include a hackage package in my stack build?

ドキュメントのこのセクションを参照してください:https://docs.haskellstack.org/en/stable/GUIDE/#external-dependencies

+0

はそれを感謝し、私は、外部依存関係のセクションを逃した信じることができません。 ...ドン! –

関連する問題