私のユーザディレクトリに2つのプロジェクト~
、プロジェクトA
およびB
があります。 A
プロジェクトでstack init
以降のstack build
を実行しています。次に、私はパッケージのバイナリを のフォルダ~/.stack-work/install/x86_64-linux/lts-6.0/7.10.3/bin
に持っています。問題はB
にA
パッケージのバイナリのこのバージョンが必要で、B
プロジェクトディレクトリのstack
と同じビルドを試してください。私は~/B
を試して、成功せずに次のコマンドを実行しました。他のパッケージのバイナリを使用してスタック
stack build ~/.stack-work/install/x86_64-linux/lts-6.0/7.10.3/bin
私はそれをどのように行うことができますか? 3番目のパッケージC
を作成して同様のものが必要な場合はどうなりますか?
抜粋:
A.cabal
コンテンツ。
name: A
version: 1.1
およびB.cabal
。その後
name: B
version: 1.0
build-depends: A>= 1.1
、
$ stack init
Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- B.cabal
Selecting the best among 8 snapshots...
* Partially matches lts-6.0
A version 1.0 found
- A requires ==1.1
これは、によって解決することができる。 - ミスマッチパッケージ(複数可)を除外するために「--omit-のパッケージを使用しました。 - '--resolver'を使用して一致するスナップショット/リゾルバを指定する
しかし、実際にはA
というバージョン1.1がビルドされています。私はあなたの質問に答えるで刺してみよう
両方のプロジェクトから.cabalファイルを投稿できますか?問題を示す最小の例を思いついてみてください。 .cabalファイルで、プロジェクトBがプロジェクトAのものをどのように参照しているのかを確認したいと思います。 – ErikR
質問を更新しました。 – jonaprieto