【问题标题】:Installing threepenny-gui with cabal: what did I do wrong?用 cabal 安装threepenny-gui:我做错了什么?
【发布时间】:2015-01-28 11:44:56
【问题描述】:

我尝试安装threepenny-gui,但在此过程中可能出现了问题。我的问题是(1)我该如何解决这个问题,以及(2)当 cabal 发出有关可能重新安装的警告时,应该如何进行?

threepenny-gui 警告我它可能会破坏 regex-compat:

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$

我用谷歌搜索了那个错误并找到了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。在三便士之前,我尝试安装 wxWidgets 和 GTK,这两个似乎都成功了,但也不让我运行示例代码。这让我考虑购买另一台计算机并切换到 Linux。 (在这台机器上安装 Linux 也让我望而却步。)

【问题讨论】:

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


    【解决方案1】:

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

    $ threepenny-examples-chat
    

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

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

    【讨论】:

    • 谢谢,海因里希!我使用“cabal install threepenny-gui -fbuildExamples regex-compat”注销并重新安装了两者。然后我找到了例子。他们似乎什么都不做:谷歌浏览器保持打开和不变,终端收到一些文本,然后它挂起,直到我发出 ^C: Listening on 127.0.0.1:8023 [30/Nov/2014:12:12:13 -0800] 服务器。 httpServe: 开始,绑定到 [127.0.0.1:8023/] ^C[30/Nov/2014:12:12:36 -0800] Server.httpServe: SHUTDOWN [30/Nov/2014:12:12:36 -0800] Server.httpServe : BACKEND STOPPED 正在关闭...
    • @user916142 似乎一切正常。当终端报告“正在侦听:127.0.0.1:8023 ...”时,您只需在浏览器中输入地址http://127.0.0.1:8023,然后按回车键。该示例应该出现。 (Threepenny 不会自动打开浏览器,这涉及到一个额外的步骤。)
    【解决方案2】:

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

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

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

    更多关于 cabal 沙盒的信息可以在here找到

    您的问题与纠缠不清的依赖关系有关,任何不是 OSX。

    【讨论】:

      猜你喜欢
      • 2019-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      相关资源
      最近更新 更多