使用Stack安装本地包

时间:2017-08-02 16:30:41

标签: haskell haskell-stack

是否可以从类似stack build package-name的来源安装软件包? (后者适用于Stackage上的包,但不适用于自定义包)

1 个答案:

答案 0 :(得分:2)

嗯,stack build(在源目录中)?

Stack实际上没有安装库的概念,它只安装可执行文件。要“安装”本地源程序包,您需要指定 要安装的内容:通过location:中的packages:字段将它们作为依赖项添加到另一个项目中该项目的stack.yaml文件中的字段。

这可以说是明智的,因为,有人可能会说,除了在另一个Haskell项目中调用它(或者你可以用stack ghci获取的REPL),你无法对已安装的库做任何事情。我个人并不坚持,但我真的能够说现在安装该库。这是我一直坚持使用旧的cabal-install而不是Stack的原因之一。有了它,你可以

cabal install

来自源目录。

Cabal-install经常受到批评:它的本地安装很容易失去同步,然后你就会遇到奇怪的依赖冲突,需要重建很多东西。我从来没有发现这个那么多的问题,无论如何这已经在最近的Cabal中通过Nix-style builds得到了解决,它永远不会产生冲突。