【问题标题】:cabal sandbox v. global package dbcabal 沙箱诉全球包 db
【发布时间】:2015-08-21 12:12:53
【问题描述】:

在 cabal 沙箱中安装时,cabal 仍将使用来自全局包 db 的包(特别是来自 Haskell 平台的包)。这可能会导致安装冲突。是否可以配置 cabal 忽略全局包 db?

我看到ghc 本身已经通过-no-global-package-db 选项(请参阅https://ghc.haskell.org/trac/ghc/ticket/5977)实现了相应的功能,如果您不传递--globalghc-pkg 将忽略全局包db旗帜。有没有办法类似地配置 cabal?

此外,针对 cabal 存在一个已解决的问题,暗示了相反的行为(重建所有内容,而不是使用已安装的 Haskell 平台中的包),所以我不确定这种行为是否随着时间的推移而改变;见https://github.com/haskell/cabal/issues/1695

【问题讨论】:

    标签: haskell ghc cabal


    【解决方案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 文章中详细讨论了这一切。

    【讨论】:

      猜你喜欢
      • 2014-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      相关资源
      最近更新 更多