如何使用Stack安装/使用本地版本的软件包?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Stack安装/使用本地版本的软件包?相关的知识,希望对你有一定的参考价值。

情况是,我正在尝试使用Stack安装Netwire。但是,最新的netwire 5.0.1存在一个问题,正如dhobbs报道的那样:http://hub.darcs.net/ertes/netwire/issue/13

由于我不知道何时会解决问题,我下载了回购并自行进行了更改。但是,我不明白如何安装这样的本地修补版本。 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: git@example.com/netwire
    commit: 6a86ee32e5b869a877151f74064572225e1a0398

(查看文档以获取更多信息:https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps

以上是关于如何使用Stack安装/使用本地版本的软件包?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Burn Bootstrap 应用程序安装本地化的 MsiPackage

Openstack-实践1.如何从Docker Hub 批量获取某个Open Stack 版本镜像?

TortoiseSVN 搭建本地版本库及简单操作使用

Gitea本地代码库搭建

如何查看 centos yum源 版本

apt如何列出所有已经安装的软件包