如何为runhaskell指定沙箱目录?

How to specify sandbox directory for runhaskell?

默认情况下,运行haskell 似乎会忽略共享沙箱路径。

当使用运行haskell从命令行运行创建haskell文件时,如何设置沙箱目录?

沙盒是 Cabal 特有的概念,runhaskell(以及 GHC 套件的其余部分)对它们一无所知。与 GHC 相关的概念是包数据库路径,它可以通过 -package-db 等命令行标志或环境变量 GHC_PACKAGE_PATH 来控制。 runhaskell好像不支持-package-db,所以设置GHC_PACKAGE_PATH是最好的选择。或者你当然可以让 Cabal 使用 cabal exec 来完成这项工作,正如 Daniel Wagner 在评论中指出的那样。

cabal exec 通过设置 GHC_PACKAGE_PATH 来工作,所以如果出于某种原因你想手动设置变量,你可以使用命令 cabal exec printenv GHC_PACKAGE_PATH 查看 Cabal 将其设置为什么值。