我正在尝试安装 EclipseFP。我正在运行 OS X Mavericks。
我尝试过以下两个官方安装说明以及建议这个答案在 SU 上,但我仍然遇到同样的问题。
我可以使用轻松安装插件本身Help -> Install New Software...
,但是当我重新启动并切换到 Haskell 视角时,事情开始出错。
安装说明告诉我,我应该收到安装 BuildWrapper 和 Scion Browser 的提示。我没有收到此提示。此外,如果我创建一个新的 Haskell 项目,我的代码没有语法高亮显示,并且 Hoogle 搜索功能似乎没有任何作用。很明显,该插件尚未正确设置。
我尝试cabal update
在终端中运行,但这并没有改变任何东西。
在 Eclipse Juno 上尝试了几次后,我卸载了 Eclispe 和 Haskell Platform,并全新安装了 Eclipse Luna 和最新的 Haskell Platform。但是,问题仍然存在。
我尝试进入“首选项”查看是否可以手动解决这些问题。首先,我应该指出,我的 GHC 安装似乎正确引用了Preferences -> Haskell Implementations
在 下Haskell -> Helper executables
,有用于配置 BuildWrapper 和 Scion Browser 选项的区域。目前,两者都是空白的。我尝试单击Install from Hackage...
它们旁边的按钮,但没有成功;我收到一条错误消息,提示
Expected executable <workspace>/.metadata/.plugins/net.sf.eclipsefp.haskell.ui/sandbox/.cabal-sandbox/bin/buildwrapper not found!`
(用 scion-browser 替换 buildwrapper ,消息是一样的)
使用 BuildWrapper 执行上述操作后,Eclipse 控制台显示以下异常:
src/Language/Haskell/BuildWrapper/GHCStorage.hs:313:32:
Not in scope: data constructor ‘MatchGroup’
cabal.real: Error: some packages failed to install:
buildwrapper-0.7.4 failed during the building phase. The exception was:
ExitFailure 1
在对 Scion-Browser 执行上述操作后:
zip-archive-0.2.3.4 (reinstall) changes: text-1.1.0.0 -> 0.11.3.1
pandoc-1.12.3.3 (latest: 1.13) -http-conduit (new version)
Graphalyze-0.14.1.0 (reinstall) changes: pandoc-1.12.4.2 -> 1.12.3.3,
text-1.1.0.0 -> 0.11.3.1
cabal.real: The following packages are likely to be broken by the reinstalls:
pandoc-1.12.4.2
unordered-containers-0.2.4.0
aeson-0.7.0.4
scientific-0.2.0.2
case-insensitive-1.1.0.3
HTTP-4000.2.10
Use --force-reinstalls if you want to install anyway.
在之前的尝试中获得与上述类似的结果后,我尝试使用强制重新安装,但最终却陷入了更多的死胡同。
我不知道哪里出了问题以及如何解决这个问题。我应该指出,我的 GHC 安装在 下似乎配置正确Preferences -> Haskell -> Haskell Implementations
。
如果这些信息有任何不相关之处,我深感抱歉,我只是不太确定现在什么是重要的,什么不重要。
如果任何人能够提供任何帮助,我将非常感激。
答案1
我最终使用 安装了 BuildWrapper cabal install buildwrapper --force-reinstalls
,并且成功了 - 我检查了 EclipseFP 首选项的 Helper Executables 部分,发现 BuildWrapper 和 Scion-Browser 都在那里。我不知道为什么这次成功了,而上次尝试时却不行,但如果其他人也遇到这个问题,我的建议是全新安装 Haskell Platform 并重试,因为这似乎已经为我解决了问题。