10

我正在开始一个有望使用 gtk2hs 的新项目。但是,我无法让这个包安装在我相当典型的 Linux 机器上。这是失败:

[1 of 2] Compiling SetupWrapper     ( /tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs, /tmp/cairo-0.12.4-4201/cairo-0.12.4/dist/dist-sandbox-58b5f9c6/setup/SetupWrapper.o )

/tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:94:45:
    Ambiguous occurrence `moreRecentFile'
    It could refer to either `SetupWrapper.moreRecentFile',
                             defined at /tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:149:1
                          or `Distribution.Simple.Utils.moreRecentFile',
                             imported from `Distribution.Simple.Utils' at /tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:8:1-32

/tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:95:45:
    Ambiguous occurrence `moreRecentFile'
    It could refer to either `SetupWrapper.moreRecentFile',
                             defined at /tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:149:1
                          or `Distribution.Simple.Utils.moreRecentFile',
                             imported from `Distribution.Simple.Utils' at /tmp/cairo-0.12.4-4201/cairo-0.12.4/SetupWrapper.hs:8:1-32
Failed to install cairo-0.12.4
[1 of 2] Compiling SetupWrapper     ( /tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs, /tmp/glib-0.12.4-4201/glib-0.12.4/dist/dist-sandbox-58b5f9c6/setup/SetupWrapper.o )

/tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:94:45:
    Ambiguous occurrence `moreRecentFile'
    It could refer to either `SetupWrapper.moreRecentFile',
                             defined at /tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:149:1
                          or `Distribution.Simple.Utils.moreRecentFile',
                             imported from `Distribution.Simple.Utils' at /tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:8:1-32

/tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:95:45:
    Ambiguous occurrence `moreRecentFile'
    It could refer to either `SetupWrapper.moreRecentFile',
                             defined at /tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:149:1
                          or `Distribution.Simple.Utils.moreRecentFile',
                             imported from `Distribution.Simple.Utils' at /tmp/glib-0.12.4-4201/glib-0.12.4/SetupWrapper.hs:8:1-32
Failed to install glib-0.12.4

它似乎与最近的 cabal 版本有关,因为它以前可以工作。这似乎是一个已知的错误(http://trac.haskell.org/gtk2hs/ticket/1292http://trac.haskell.org/gtk2hs/ticket/1291http://trac.haskell.org/ gtk2hs/ticket/1289),但是它已经好几个星期没有移动了。我没有足够的能力提出一个好的解决方案,所以我想听听你的建议。这很烦人,因为我被困在这个重要的项目上,想到我们语言的主要 GUI 库已经坏了好几个星期了,我感到很痛苦。

使用 Cabal 库 / ghc 7.4.1 的 1.18.1.1 版本安装 1.18.0.2 版本

谢谢你的帮助

4

2 回答 2

3

目前正确的解决方案是从 darcs 构建。详细说明在安装说明的获取最新最好的部分;简短的版本是:

darcs get --lazy http://code.haskell.org/gtk2hs
cd gtk2hs
sh bootstrap.sh

编辑: 2013 年 12 月的 gtk2hs 官方 0.12.5 版本支持 cabal 1.18,因此不再需要上述 darcs 说明。完整的安装说明仍然可以从Gtk2Hs 下载页面获得;简短的版本是:

cabal install gtk2hs-buildtools
cabal install gtk gtk3
于 2013-10-25T01:25:59.660 回答
2

您可以尝试使用旧Cabal版本cabal install --cabal-lib-version=1.16.0 gtk

于 2013-10-24T16:27:44.710 回答