查找Haskell模块所属的包

我是 Haskell 堆栈的新手,想知道如何找出包含特定模块的包的名称。

目前,我想使用Data.Tuple.Extra(fst3)(https://hackage.haskell.org/package/extra-1.7.9/docs/Data-Tuple-Extra.html)并想知道我应该在下面写什么

    $ stack install ????

我已经安装了该tuple软件包,但是它似乎不包含该Extra部分。

到目前为止,我发现的有关安装软件包的所有 Internet 资源都说“要使用 Blahblah.Anything.Something,您需要安装该foofoo软件包”。. . 怎么会知道呢?我搜索了 Stackage,但它只显示了 的文档,Data.Tuple.Extra我仍然找不到包的名称。

编辑:正如KABuhr在她/他的回答中指出的那样,stack install对于上述情况是错误的命令。使用stack build来代替。

回答

在Hackage 中浏览包文档时,页眉的左上角部分将始终提供包、版本号和描述。在您链接的页面上,它在这里:

您还可以使用右上角的“内容”链接转到extra包的主页,其中提供了完整的模块列表、许可、包主页和错误跟踪器的链接等。

作为旁注,stack install extra从技术上讲,“安装”这个包是错误的命令。如果您想让extra包在 Stack 全局项目中可用,正确的命令是stack build extra. 如果您想extra在堆栈项目中使用,那么您想要添加extra到您的包xxx.cabalpackage.yaml文件中的依赖项并运行stack build(无参数)以构建和安装它以在您的项目中使用。

相反,该stack install命令相当于stack build --copy-bins将包中的任何可执行文件复制到其中,~/.local/bin以便它们在您的路径中。请参阅堆栈文档。它旨在用于安装通过 Stack 分发的 Haskell 编写的程序,因此您可以stack install hlint安装hlintlinter,例如。

在这种情况下,因为extra包没有可执行文件,stack install extra并且stack build extra会做同样的事情,但最好养成stack build在不打算安装任何包二进制文件时使用的习惯,以避免意外。


以上是查找Haskell模块所属的包的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>