用cabal安装threepenny-gui:我做错了什么?

时间:2014-11-30 09:50:42

标签: haskell user-interface cabal reinstall threepenny-gui

我尝试安装了threepenny-gui,并且可能在此过程中破坏了一些东西。我的问题是(1)我如何解决这个问题,以及(2)当cabal发出关于可能重新安装的警告时,应该如何处理?

threepenny-gui警告我,它可能会破坏正则表达式:

jeffreys-mbp:~ jbb$ cabal install threepenny-gui -fbuildExamples

cabal: The following packages are likely to be broken by the reinstalls:
regex-compat-0.95.1
Use --force-reinstalls if you want to install anyway.

我还没有在haskell中使用正则表达式,所以这似乎值得冒险,我继续说道:

jeffreys-mbp:~ jbb$ cabal install threepenny-gui -fbuildExamples --force-reinstalls

这启动了一个发出此警告的流程:

Warning: The following packages are likely to be broken by the reinstalls:
regex-compat-0.95.1

但其他方面似乎有效。然后我尝试运行几个示例程序,但没有成功:

jefferys-mbp:samples jbb$ ./runhaskell Chat.hs
ghc: can't find a package database at ../.cabal-sandbox/*-packages.conf.d
jefferys-mbp:samples jbb$ ./runhaskell MissingDollars.hs 
ghc: can't find a package database at ../.cabal-sandbox/*-packages.conf.d
jefferys-mbp:samples jbb$

我用Google搜索了该错误并找到only one page with it,我没看到该怎么用。

我想也许问题是我打破了regex-compat,所以我尝试重新安装:

jefferys-mbp:samples jbb$ cabal install regex-compat
Resolving dependencies...
All the requested packages are already installed:
regex-compat-0.95.1
Use --reinstall if you want to reinstall anyway.
jefferys-mbp:samples jbb$ cabal install regex-compat --reinstall
Resolving dependencies...
In order, the following will be installed:
regex-compat-0.95.1 (reinstall)
Warning: Note that reinstalls are always dangerous. Continuing anyway...
    ## It warned me that its suggestion is dangerous only AFTER I had acted on its suggestion.
Downloading regex-compat-0.95.1...
Configuring regex-compat-0.95.1...
Building regex-compat-0.95.1...
Installed regex-compat-0.95.1
Updating documentation index /Users/jbb/Library/Haskell/share/doc/index.html
jefferys-mbp:samples jbb$ 

我不知道是否重新安装了regex-compat,但是threepenny-gui中的样本仍然不适合我。

我在2011年初的MBP上运行OS X Mavericks。在threepenny之前,我尝试安装wxWidgets和GTK,这两个似乎都成功但不允许我运行示例代码。它让我考虑购买另一台电脑并切换到Linux。 (在这台机器上安装Linux也没找到我。)

2 个答案:

答案 0 :(得分:2)

使用threepenny-gui选项安装-fbuildExamples软件包(编写本文时版本为0.5。*)将使示例可用作可执行文件。例如,可以通过键入

来运行聊天示例
$ threepenny-examples-chat

您也可以直接从samples/文件夹运行示例,但这对图书馆开发人员来说更方便。您不必使用runhaskellghci脚本;他们设置了一些路径,但他们还假设您已在源树的根目录中设置了一个cabal沙箱并安装了依赖项。

您自己编写或从某处复制的示例代码应该可以正常运行。

答案 1 :(得分:1)

使用此配方在沙箱中构建它:

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

构建的可执行文件将驻留在.cabal-sandbox / bin

有关cabal沙箱的更多信息,请访问here

你的问题与依赖的纠缠嵌套有关,而不是OSX。