情况是,我正在尝试使用Stack安装Netwire。但是,最新的netwire 5.0.1存在一个问题,正如dhobbs报道的那样:http://hub.darcs.net/ertes/netwire/issue/13
由于我不知道问题何时解决,我下载了回购并自行进行了更改。但是,我不了解如何安装这样的本地修补版本。 stack install
未将其安装到~/.stack
中。有没有人有想法?
更新
现在我正在使用Stack开发一些其他库。如何让另一个项目使用该库?对相对路径进行硬编码看起来非常难看。
答案 0 :(得分:18)
因此,您有一个项目,您希望使用本地修补的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: git@example.com/netwire
commit: 6a86ee32e5b869a877151f74064572225e1a0398
(查看文档了解更多信息:https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps)