Cabal在ubuntu 12.04上安装reactive-banana-wx

时间:2012-05-10 01:46:23

标签: haskell cabal haskell-platform cabal-install reactive-banana

我刚刚安装了Ubuntu 12.04,从apt-get下载了haskell-platform,当我尝试安装reactive-banana-wx时,我得到了:

cabal install reactive-banana-wx
Resolving dependencies...
In order, the following would be installed:
deepseq-1.3.0.0 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
containers-0.4.2.1 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
Cabal-1.14.0 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
fgl-5.4.2.4 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3, mtl-2.0.1.0 -> 2.1
regex-base-0.93.2 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
regex-posix-0.95.1 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
regex-compat-0.95.1 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
template-haskell-2.7.0.0 (reinstall)
fclabels-1.1.3 (new package)
text-0.11.2.0 (new version)
hashable-1.1.2.3 (new package)
time-1.4.0.1 (new version)
hslogger-1.1.5 (reinstall) changes: time-1.4 -> 1.4.0.1
random-1.0.1.1 (reinstall) changes: time-1.4 -> 1.4.0.1
MissingH-1.1.1.0 (reinstall) changes: array-0.4.0.0 -> 0.3.0.3
QuickCheck-2.4.2 (reinstall)
cabal-macosx-0.2.2 (new package)
unordered-containers-0.2.1.0 (new package)
vault-0.2.0.0 (new package)
reactive-banana-0.5.0.3 (new package)
wxdirect-0.90.0.1 (new package)
wxcore-0.12.1.7 (new package)
wx-0.12.1.6 (new package)
reactive-banana-wx-0.5.0.0 (new package)
cabal: The following packages are likely to be broken by the reinstalls:
time-1.4
xmonad-contrib-0.10
haskell98-2.0.0.1
text-0.11.1.13
parsec-3.1.2
network-2.3.0.10
cgi-3001.1.8.2
HTTP-4000.2.2
parallel-3.2.0.2
containers-0.5.0.0
xmonad-0.10
ghc-7.4.1
hpc-0.5.1.1
hoopl-3.8.7.3
binary-0.5.1.0
bin-package-db-0.0.0.0
GLUT-2.1.2.1
Use --force-reinstalls if you want to install anyway.

当我强制重新安装时,我得到:

Control/DeepSeq.hs:56:1:
    array-0.3.0.3:Data.Array can't be safely imported! The module itself isn't safe.
cabal: Error: some packages failed to install:
Cabal-1.14.0 depends on deepseq-1.3.0.0 which failed to install.
MissingH-1.1.1.0 depends on deepseq-1.3.0.0 which failed to install.
QuickCheck-2.4.2 depends on deepseq-1.3.0.0 which failed to install.
cabal-macosx-0.2.2 depends on deepseq-1.3.0.0 which failed to install.
containers-0.4.2.1 depends on deepseq-1.3.0.0 which failed to install.
deepseq-1.3.0.0 failed during the building phase. The exception was:
ExitFailure 1
fclabels-1.1.3 depends on deepseq-1.3.0.0 which failed to install.
fgl-5.4.2.4 depends on deepseq-1.3.0.0 which failed to install.
hashable-1.1.2.3 depends on deepseq-1.3.0.0 which failed to install.
hslogger-1.1.5 depends on deepseq-1.3.0.0 which failed to install.
random-1.0.1.1 depends on deepseq-1.3.0.0 which failed to install.
reactive-banana-0.5.0.3 depends on deepseq-1.3.0.0 which failed to install.
reactive-banana-wx-0.5.0.0 depends on deepseq-1.3.0.0 which failed to install.
regex-base-0.93.2 depends on deepseq-1.3.0.0 which failed to install.
regex-compat-0.95.1 depends on deepseq-1.3.0.0 which failed to install.
regex-posix-0.95.1 depends on deepseq-1.3.0.0 which failed to install.
template-haskell-2.7.0.0 depends on deepseq-1.3.0.0 which failed to install.
text-0.11.2.0 depends on deepseq-1.3.0.0 which failed to install.
time-1.4.0.1 depends on deepseq-1.3.0.0 which failed to install.
unordered-containers-0.2.1.0 depends on deepseq-1.3.0.0 which failed to
install.
vault-0.2.0.0 depends on deepseq-1.3.0.0 which failed to install.
wx-0.12.1.6 depends on deepseq-1.3.0.0 which failed to install.
wxcore-0.12.1.7 depends on deepseq-1.3.0.0 which failed to install.
wxdirect-0.90.0.1 depends on deepseq-1.3.0.0 which failed to install.

关于我如何能够解决这个问题的想法,还是我必须等待依赖关系更新或者新版本的haskell-platform?如果可能的话,我想保持一切尽可能接近Ubuntu上的标准安装。

谢谢!

1 个答案:

答案 0 :(得分:3)

首先:永远不要强制重新安装arraycontainers。这很可能会导致已安装的软件包大量破损。

(或至少一个)问题是reactive-banana-wx-0.5.0.0特别依赖于wxcore-0.12.1.7,后者又指定了依赖array < 0.4。允许array-0.4。*上传到hackage的wxcore版本分别为0.13.2.1和0.90。然而,两者都无法使用ghc-7.4构建hackage。

通过下载一些软件包并编辑他们的.cabal文件来放松依赖关系,可能可以用ghc-7.4构建reactive-banana-wx,但我无法猜测是否更有希望编辑反应性香蕉 - wx .cabal文件允许以后的wx包或者reactive-banana-wx指定的.cabal包的wx文件允许以后的数组,容器和类似文件。

我建议通知作者/维护者反应性香蕉并让他将其分类。

或者,如果您真的热衷于使用reactive-banana-wx,请将您的Haskell实现降级为使用ghc-7.2或7.0。