为 ghc 编译器指定自定义临时目录

Som*_*ari 1 haskell ghc

我在运行 Ubuntu 14.04 LTS 的 Web 服务器上使用 ghc。由于某些限制,我无法提供对 /tmp 文件夹的写入权限。

删除对 /tmp 文件夹的权限后,ghc 编译器抛出此错误

/tmp/ghc12032_0: createDirectory: permission denied (Permission denied)
Run Code Online (Sandbox Code Playgroud)

有没有办法为 ghc 提供自定义临时目录?我没有找到任何可以帮助解决这个问题的编译器标志。每次调用 ghc 时,我都需要提供一个自定义目录。任何帮助,将不胜感激。

Mat*_*hid 5

这个怎么样?

https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/separate_compilation.html#redirecting-temporary-files

-tmpdir

如果您因为 /tmp 中的空间不足(或您的安装认为临时文件应该去的地方)而遇到问题,您可以使用 -tmpdir 选项来指定备用目录。例如, -tmpdir 。说将临时文件放在当前工作目录中。

或者,使用您的 TMPDIR 环境变量。将其设置为应放置临时文件的目录的名称。GCC 和其他程序也将遵守 TMPDIR 变量。

更好的主意:在构建 GHC 时设置 DEFAULT_TMPDIR make 变量,再也不用担心 TMPDIR。(请参阅构建文档)。