我对 Haskell 一个阴谋集团完全陌生,我正在努力让 yesod 工作。
我的 cabal 版本是使用 Cabal 库的 1.20.0.2 版本的 cabal-install 版本 1.20.0.3
这是我安装 alex 时发生的事情:
$ cabal install alex
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: alex-3.1.4 (user goal)
next goal: QuickCheck (dependency of alex-3.1.4)
rejecting: QuickCheck-2.8.1, 2.8 (global constraint requires ==2.7.6)
trying: QuickCheck-2.7.6
next goal: transformers (dependency of QuickCheck-2.7.6)
rejecting: transformers-0.4.3.0, 0.4.2.0, 0.4.1.0, 0.3.0.0, 0.2.2.1, 0.2.2.0,
0.2.1.0, 0.2.0.0, 0.1.4.0, 0.1.3.0, 0.1.1.0, 0.1.0.1, 0.1.0.0, 0.0.1.0,
0.0.0.0, 0.4.0.0 (global constraint requires installed instance)
Dependency tree exhaustively searched.
第二次尝试:
$ cabal install alex happy yesod-bin --allow-newer
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: alex-3.1.4 (user goal)
trying: QuickCheck-2.7.6/installed-1a8... (dependency of alex-3.1.4)
trying: tf-random-0.5/installed-ef3... (dependency of
QuickCheck-2.7.6/installed-1a8...)
next goal: primitive (dependency of tf-random-0.5/installed-ef3...)
rejecting: primitive-0.5.0.1/installed-8e5... (global constraint requires
==0.6)
rejecting: primitive-0.6 (conflict: tf-random =>
primitive==0.5.0.1/installed-8e5...)
rejecting: primitive-0.5.4.0, 0.5.3.0, 0.5.2.1, 0.5.1.0, 0.5.0.1, 0.5, 0.4.1,
0.4.0.1, 0.4, 0.3.1, 0.3, 0.2.1, 0.2, 0.1 (global constraint requires ==0.6)
Dependency tree exhaustively searched.
我需要做什么才能安装 alex?
一个相关的问题是: cabal install --- global constraint requires installed instance
@kosmikus 对这个问题的评论是:
因此 Stackage LTS 配置文件包含已安装的约束转换器,这意味着只能使用已经存在的转换器版本。这是合理的,因为 GHC 附带了特定版本的变压器。对于ghc-7.8,这是transformers-0.3.0.0。出于某种原因,cabal-install 不考虑这个安装的版本。您的部分日志没有包含足够的信息来了解原因。
如何修复 Stackage LTS 配置文件?它在 Ubuntu 上的什么位置?