cabal配置文件中的路径变量

时间:2016-12-24 11:54:11

标签: windows haskell configuration-files cabal

在Windows上,我想更改cabal的默认每用户安装目录。 config文件的相关部分是:

install-dirs user
  prefix: C:\path\to\my\folder
  -- bindir: $prefix\bin
  -- libdir: $prefix
  -- libsubdir: $abi\$libname
  -- libexecdir: $prefix\$libname
  -- datadir: $prefix
  -- datasubdir: $abi\$pkgid
  -- docdir: $datadir\doc\$abi\$pkgid
  -- htmldir: $docdir\html
  -- haddockdir: $htmldir
  -- sysconfdir: $prefix\etc

什么是$abi$pkgid?它们未在config文件中定义。 cabal是否有这些变量的默认值(哪些变量)?我如何/在哪里定义它们?

修改

@Sibi的答案是完美的。为了完成这些信息,我还修改了这些参数:

remote-repo-cache: C:\path\to\my\folder\packages
logs-dir: C:\path\to\my\folder\logs
world-file: C:\path\to\my\folder\world
build-summary: C:\path\to\my\folder\logs\build.log

1 个答案:

答案 0 :(得分:1)

您可以参考here了解更多详情。

$abi对应AbiVar类型。

$pkgid对应PkgIdVar类型。

它们未在配置文件中定义。它们将在构建步骤中由Cabal生成,具体取决于您的体系结构等。您可以see this guide了解安装路径。

对于我的Linux系统,它们的值是:

$abi是x86_64-linux-ghc-7.10.3

$pkgid是指包名及其版本。示例:array-1.2.3.4

但是如果你想改变位置,我的建议就是改变prefix路径,因为那是根安装文件夹。其他一切都与此有关。