在cabal沙箱中安装时,cabal仍将使用全局包db中的包(特别是来自Haskell平台的包)。这可能会导致安装冲突。是否可以将cabal配置为忽略全局包db?
我看到-no-global-package-db
本身已经通过ghc-pkg
选项(参见https://ghc.haskell.org/trac/ghc/ticket/5977)实现了相应的功能,--global
将忽略全局包db不要传递import cv2
标志。有没有办法同样配置cabal?
此外,还有一个针对cabal的封闭问题暗示相反的行为(重建所有内容而不是使用已安装的Haskell平台中的软件包),所以我不确定这种行为是否随着时间的推移而发生变化;见https://github.com/haskell/cabal/issues/1695
答案 0 :(得分:1)
你应该能够传递cabal configure
--package-db
标志,如下所示:
--package-db=DB Append the given package database to the list of package databases used (to satisfy dependencies and register into). May be a specific file, 'global' or 'user'. The initial list is ['global'], ['global', 'user'], or ['global', $sandbox], depending on context. Use 'clear' to reset the list to empty. See the user guide for details.
因此,特别是,您可以将其传递给clear
,然后将其传递给沙箱数据库。
Storage and Interpretation of Cabalized Packages文章中详细讨论了这一点。