如何更改cabal存储文档的目录

fuz*_*fuz 3 haskell configuration-files cabal

我安装了带有前缀的自定义Haskell工具链$HOME/usr,因此编译器存在于$HOME/usr/bin/ghc文档中$HOME/usr/share/doc/ghc/....工具链包括ghc安装,cabal安装和您需要的所有库.我$PATH在某种程度上建立了所有这些程序.我的系统上没有其他这些工具的安装.

现在我尝试安装其他一些库.但是,当cabal尝试安装文档时,我总是遇到同样的错误:

~$ cabal install --global binary
Resolving dependencies...
Configuring binary-0.5.0.2...
Preprocessing library binary-0.5.0.2...
Building binary-0.5.0.2...
 ... snip ...
Registering binary-0.5.0.2...
cabal: /usr/local/share/doc: permission denied

如何告诉cabal文档应该存在的位置?我不想在shell中一次又一次地提供这些信息,所以最好是配置文件.我希望在我的主页树中包含所有与haskell相关的东西,以避免用错误的命令破坏我的系统.

Joh*_*n L 9

你为什么用"--global"安装?默认情况下,这会将所有内容放在/ usr/local /中.如果您执行标准的每用户安装,则文档将安装到您的主目录中,它应该可以正常工作.

话虽这么说,这可以通过文件进行配置.cabal配置文件通常位于~/.cabal/config/.这是我的相关部分:

install-dirs global
  -- prefix: /usr/local
  -- bindir: $prefix/bin
  -- libdir: $prefix/lib
  -- libsubdir: $pkgid/$compiler
  -- libexecdir: $prefix/libexec
  -- datadir: $prefix/share
  -- datasubdir: $pkgid
  -- docdir: $datadir/doc/$pkgid
  -- htmldir: $docdir/html
  -- haddockdir: $htmldir
Run Code Online (Sandbox Code Playgroud)

您可以进行任何您喜欢的更改,只需确保取消注释.还有一个"install-dirs用户"部分,用于每个用户的安装.