【问题标题】:cabal sandbox uses system level packagescabal 沙箱使用系统级包
【发布时间】:2015-07-04 00:02:10
【问题描述】:

我正在尝试运行haskelldb-demo

cabal sandbox init && cabal install --only-dependencies

它需要HDBC-postgresql-2.2.3.1,它需要基础包版本为base>=3 && <4.5。我的系统有 base pkg 版本 4.7+。

我正在使用 cabal 沙箱,但 cabal install 仍然引用全局存储库中的基本 (v4.7.0.2) 包并拒绝所有版本的 HDBC-postgresql

rejecting: HDBC-postgresql-2.2.3.1 (conflict: base==4.7.0.2/installed-bfd...,
HDBC-postgresql => base>=3 && <4.5)

为什么 cabal 指的是系统级包,尽管我制作了一个沙盒?

【问题讨论】:

    标签: haskell cabal cabal-install


    【解决方案1】:

    Cabal 始终使用全局包数据库。沙盒仅意味着您不使用用户包数据库。大概是为了确保您有可用的基本包和 ghc。

    如果您的基础不匹配,则意味着您尝试安装的软件包与您的 GHC 版本不兼容。我会避免安装不同版本的 base。

    相关问题(没有明确答案):

    How to get cabal to ignore the global package DB when using a sandbox

    cabal sandbox v. global package db

    【讨论】:

    • 如果该包没有base &lt; 4.5 约束,它也有可能实际上针对较新版本的base 构建良好。 OP可以尝试添加--allow-newer=base
    猜你喜欢
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2016-03-11
    • 2013-06-05
    • 1970-01-01
    相关资源
    最近更新 更多