【问题标题】:Cabal: Blocking base packages from installingCabal:阻止安装基础包
【发布时间】:2012-09-30 08:48:33
【问题描述】:

我在 Ubuntu 12.04 和 ghc 7.4.1 上使用 cabal-install 1.14.0。

我尝试安装的一些 cabal 软件包正在拉入 directory-1.2.0.0,这需要 ghc 7.6。有没有办法将 cabal 配置为甚至不尝试安装 directory-1.2.0.0?

【问题讨论】:

    标签: haskell ghc cabal cabal-install


    【解决方案1】:

    你可以使用约束,

    cabal install foo --constraint="directory < 1.2"
    

    或者,就像Daniel Wagner reminded me,更好,因为它确实可以防止重新安装,

    cabal install foo --constraint="directory installed"
    

    如果您希望全局使用,请将其添加到您的 cabal 配置文件(Linux 和 Mac 上的 ~/.cabal/config,Windows 上的 \Users\You\AppData 中的某处,iirc),该文件有一行

    -- constraint:
    

    取消注释并添加约束。

    【讨论】:

    • Mac 上和 Linux 上完全相同的地方。
    • 更好的是“安装目录”约束,它可以防止重新安装(即使是完全相同的版本,但针对不同版本的依赖项进行了重建)。
    • 太棒了,@DanielWagner。完全忘记了。
    • 它在 MS Windows 下的位置取决于您使用的版本以及您是否在 LAN 上等。您可以在命令提示符窗口中键入 cd %appdata%
    • 在windows资源管理器中输入%appdata%也可以找到