Haskell Cabal共享沙箱和沙箱范围的Cabal.config
我正在使用cabal沙盒特性为我的Haskell项目创建一个独立的构建环境,该项目有很多包。为此,我有一个构建脚本,它首先通过Haskell Cabal共享沙箱和沙箱范围的Cabal.config,haskell,cabal,Haskell,Cabal,我正在使用cabal沙盒特性为我的Haskell项目创建一个独立的构建环境,该项目有很多包。为此,我有一个构建脚本,它首先通过 cabal sandbox init 在生成目录中,然后调用 cabal sandbox add-source <path-to-project> cabal沙箱添加源代码 我的每个包裹都在那个目录里。此外,为了简化开发过程,我启动了 cabal sandbox init --sandbox <path-to-sandbox> cabal
cabal sandbox init
在生成目录中,然后调用
cabal sandbox add-source <path-to-project>
cabal沙箱添加源代码
我的每个包裹都在那个目录里。此外,为了简化开发过程,我启动了
cabal sandbox init --sandbox <path-to-sandbox>
cabalsandboxinit--sandbox
在我所有的软件包目录中。这允许我直接从所需的包目录执行cabal安装
,并将所有依赖项构建和包安装到我的沙箱中
现在我有一个配置文件的问题。我在构建目录中的cabal.sandbox.config
旁边创建了cabal.config
,它有两个cabal标志(以及额外的include dir等)。它在我启动时工作(并且似乎应用了设置),例如,cabal install HsOpenSSL
,我的当前目录是一个构建目录(我称之为cabal sandbox init
的目录,以及cabal.config
所在的目录)
现在,如果我尝试从HsOpenSSL项目目录启动cabal install
,我的沙箱中的cabal.config
将被忽略(尽管之前正确调用了cabal sandbox init--sandbox
,并且cabal发出了关于安装到沙箱的通知)
问题是,我是否可以为添加到沙箱中的所有包指定cabal选项,即使我只是从包目录启动cabal configure/build/install
,这些选项也会应用
我正在使用Windows和cabal-install-1.22.0.0。您解决过这个问题吗?我也遇到了同样的问题。我最终切换到了Stack(),这解决了很多令人头痛的问题。