install、v1-install、v2-install 和 new-install 有什么区别?

问题描述

installv1-installv2-installnew-install 命令被简单地描述为在运行 man cabal 时“安装包”。它们彼此不同吗?哪个是首选?

解决方法

对于 modern 版本的 cabal-install,install,new-install and v2-install 是相同的。 v1-install 和其他 v1- 命令已过时,不应再使用。

请注意,在开发 cabal 包时,install 命令在很大程度上是不必要的。运行 cabal buildcabal repl 将自动安装所需的依赖项(列在 build-depends:cabal file 部分)。

cabal install 在以下情况下仍然有用:

  • 从包安装可执行文件。就像 wai-app-static 包中的 warp 可执行文件一样。在这些情况下,选项 --overwrite-policy--install-method--installdir 很有用。
  • 在某个文件夹中创建本地 package environment,以便 ghcghci 的“裸”调用看到一些所需的库集。喜欢this。在这些情况下,选项 --lib--package-env 很有用。