状況は、Stackを使用してNetwireをインストールしようとしています。ただし、dhobbsによって報告されているように、最新のnetwire 5.0.1には問題があります。 http://hub.darcs.net/ertes/netwire/issue/1
問題がいつ修正されるかわからないので、リポジトリをダウンロードして自分で変更しました。しかし、そのようなローカルパッチバージョンをインストールする方法がわかりません。 stack install
はそれを~/.stack
にインストールしません。誰かアイデアがありますか?
更新
現在、Stackを使用して他のライブラリを開発しています。別のプロジェクトでそのライブラリを使用するにはどうすればよいですか?相対パスをハードコーディングすると、非常に見苦しくなります。
したがって、ローカルにパッチを適用したNetwireバージョンを使用するプロジェクトがあり、プロジェクトには、例としてstack.yml
があります。
flags: {}
packages:
- '.'
extra-deps: {}
resolver: lts-3.7
また、cabalファイルで宣言されているnetwire
にも依存しています。
パッチを適用したNetwireをこのプロジェクトで使用するには、パッチを適用したNetwireパッケージをプロジェクトのサブディレクトリ(おそらくnetwire
)に配置し、stack.yml
を次のように更新します。
flags: {}
packages:
- '.'
- netwire
extra-deps: {}
resolver: lts-3.7
これで、stack build
はパッチを適用したNetwireバージョンでプロジェクトをビルドします。
変更したソースをオンラインにして(ライセンスで許可されている場合)、tarball URLを使用してソースを参照することもできます。
- https://example.com/netwire.tar.gz
またはgitリポジトリとコミットリファレンス:
- location:
git: [email protected]/netwire
commit: 6a86ee32e5b869a877151f74064572225e1a0398
(詳細については、ドキュメントを確認してください: https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps )