Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 如何更改cabal存储文档的目录_Haskell_Configuration Files_Cabal - Fatal编程技术网

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

Haskell 如何更改cabal存储文档的目录,haskell,configuration-files,cabal,Haskell,Configuration Files,Cabal,我安装了一个前缀为$HOME/usr的自定义Haskell工具链,因此编译器位于$HOME/usr/bin/ghc中,文档位于$HOME/usr/share/doc/ghc/…中。工具链包括一个ghc安装、一个cabal安装和您需要的所有LIB。我在某种程度上设置了$PATH,所有这些程序都在其中。在我的系统上没有其他安装这些工具 现在我尝试安装一些其他库。但当阴谋集团试图安装文档时,我总是遇到同样的错误: ~$ cabal install --global binary Resolving d

我安装了一个前缀为
$HOME/usr
的自定义Haskell工具链,因此编译器位于
$HOME/usr/bin/ghc
中,文档位于
$HOME/usr/share/doc/ghc/…
中。工具链包括一个
ghc
安装、一个
cabal
安装和您需要的所有LIB。我在某种程度上设置了
$PATH
,所有这些程序都在其中。在我的系统上没有其他安装这些工具

现在我尝试安装一些其他库。但当阴谋集团试图安装文档时,我总是遇到同样的错误:

~$ 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安装--全局二进制文件 正在解析依赖项。。。 正在配置二进制文件-0.5.0.2。。。 预处理库二进制-0.5.0.2。。。 正在构建二进制-0.5.0.2。。。 ... 剪 正在注册二进制文件-0.5.0.2。。。 阴谋集团:/usr/local/share/doc:权限被拒绝
我怎样才能告诉阴谋集团文件应该放在哪里?我不想在shell中一次又一次地给出这些信息,所以最好是一个配置文件。我希望在我的主目录树中包含所有与haskell相关的内容,以避免用错误的命令破坏我的系统

为什么要安装“-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

你可以做任何你喜欢的改变,只是要确保取消注释的行。还有一个“安装目录用户”部分,用于按用户安装。

我同意这张海报。为什么没有明确的文档说明如何做 阴谋集团安装包——全球 当需要权限时提示sudo? 做 sudo cabal安装包 这是一个坏主意,因为这样您将以root身份构建包。您必须允许internet连接写入root拥有的文件(您必须填充/root/.cabal或类似的内容)

有一个很好的理由可以解释为什么要这样做: 如果我通过linux软件包管理器安装ghc和haskell平台(这有很好的理由),那么如果我安装cabal软件包
它将不会识别全局识别的包

实际上,有人发布了一个(几乎令人恼火的)详细描述,说明了如何进行全局安装(使用--global或install dirs global),而不会遇到权限错误。诀窍是在cabal配置文件中使用root cmd sudo。 看见

仅取消注释第一行就足够了吗?我是否应该将
--前缀:/usr/local
更改为
--前缀:~/mydir
前缀:~/mydir
省略两个破折号(
--
)?另外,我可以剪切
/usr/local/.cabal
文件夹将其粘贴到
~/mydir
中吗?