cabal 配置文件中的路径变量
Path variables in cabal configuration file
在 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
这些变量(哪些)有默认值? How/where 我可以定义它们吗?
编辑
@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
您可以参考 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
路径,因为那是根安装文件夹。其他一切都将与此相关。
在 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
这些变量(哪些)有默认值? How/where 我可以定义它们吗?
编辑
@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
您可以参考 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
路径,因为那是根安装文件夹。其他一切都将与此相关。