无法安装Haskell uniplate库

时间:2014-11-15 03:24:53

标签: haskell cabal cabal-install elm

我正在尝试安装Elm,说明是安装Haskell然后

sh> cabal update
sh> cabal install cabal-install
sh> cabal install -j Elm elm-repl elm-reactor elm-get

当我这样做时,cabal-install安装会安装text-1.2.0.0,它与text-1.1.0.0冲突,uniplate需要这样uniplate并且其依赖项无法安装。 Text-1.1.0.0已安装并存在但被拒绝而不支持text-1.2.0.0,即使目标需要text-1.1.0.0。

有没有办法坚持cabal使用text-1.1.0.0? 有没有办法让text-1.1.0.0和text-1.2.0.0共存? 有没有办法说服uniplate它可以接受text-1.2.0.0? 或者让uniplate(或cabal)认为版本text-1.1.0.0实际安装的方法?这甚至会起作用吗?

当我明确尝试安装1.1.0.0版本的文本时,我被告知重新安装会破坏其他软件包。显然它是降级而不是共同安装。 cabal似乎没有允许我同时安装同一个库的两个版本的选项。

如果我卸载Haskell和所有库然后重新安装Elm(没有安装cabal-install,所以我没有安装text-1.2.0.0所以没有冲突),我得到100行左右的

package aeson-0.7.0.4-8f84b14cc682e4c9b009352420076a45 is unusable due to missing or recursive dependencies:
  attoparsec-0.10.4.0-ec2d0a330db1f6e3a6a3b79471a403ef hashable-1.2.2.0-45bd22df8c4ead6b3a7fb1d08bb07f7d mtl-2.1.3.1-8bcc0591131896cfc8761a93703d4c61 scientific-0.2.0.2-5e275f5d96527da6dc1f05642692a484 syb-0.4.1-be94ebe67c3607f5df1dfcc1906f5d5c text-1.1.0.0-9bd69e9ace700e05fb08e463086bc383 unordered-containers-0.2.4.0-69836b34d13649bcfacc8fb0c9f53e64 vector-0.10.9.1-c550551354bc7c2b5a1d261f39b2f3f4
package aeson-pretty-0.7.1-5dc26d5a4560afe110e90283479a1251 is unusable due to missing or recursive dependencies:
aeson-0.7.0.4-8f84b14cc682e4c9b009352420076a45       
text-1.1.0.0-9bd69e9ace700e05fb08e463086bc383 
unordered-containers-0.2.4.0-69836b34d13649bcfacc8fb0c9f53e64 
vector-0.10.9.1-c550551354bc7c2b5a1d261f39b2f3f4
package asn1-encoding-0.9.0-94e9066cccf7ead73bee5ae4aa982071 is unusable due to missing or recursive dependencies:
mtl-2.1.3.1-8bcc0591131896cfc8761a93703d4c61
package asn1-parse-0.9.0-af4efc4777a8a0d9d19a626d5e4b08ff is unusable due to missing or recursive dependencies:
asn1-encoding-0.9.0-94e9066cccf7ead73bee5ae4aa982071
mtl-2.1.3.1-8bcc0591131896cfc8761a93703d4c61 
text-1.1.0.0-9bd69e9ace700e05fb08e463086bc383

我根本不知道如何解决这个问题或在哪里尝试。有没有人先走过这条路,你有什么建议或指点吗?

谢谢。

修改的 在沙箱中安装只会按度数更改结果:text-1.1.0.0不会与text-1.1.0.0发生冲突,但仍然无法加载(尽管已安装)仍然是不满意的依赖项。

blaze-builder首先失败,cannot satisfy -package-id text-1.1.0.0-9bd69e9ace700e05fb08e463086bc383但之前的同一日志[_12] trying: text-1.1.0.0/installed-9bd... (dependency of Elm-0.13)没有明显的错误或投诉。

cabal list显示已安装的text-1.1.0.0和text-1.2.0.0。

单独安装blaze-builder看起来是一样的。依赖性解析显示

[_56] trying: blaze-builder-0.3.3.4 (user goal)
[_57] next goal: text (dependency of blaze-builder-0.3.3.4)
[_57] trying: text-1.1.0.0/installed-9bd...
[_58] done

一切看起来不错,但后来,同样的日志

<command line>: cannot satisfy -package-id text-1.1.0.0-9bd69e9ace700e05fb08e463086bc383
    (use -v for more information)

ghc命令行已经有-v标志,并且尝试重新运行从日志中复制的命令行,并且-v s更多,在&#34时出错;无法找到包数据库 DIST / DIST-沙箱-ad0bcd57 / package.conf.inplace&#34;

似乎没有package.conf.inplace存在。

进一步编辑

在Elm安装页面上是指向BuildFromSource.hs脚本的链接,该脚本也可用于安装Elm。在该脚本运行并且无法工作的时间内,我设法安装了leiningen,node,npm,grunt和Clojure。我现在进一步在大约20分钟内安装Clojurescript,而不是在近一周内安装Elm。

榆树看起来非常很有趣,但它的播放方式太难了。

再次感谢所有试图提供帮助的人。

*编辑*

我终于明白了。

安装程序在http://elm-lang.org/Install.elm安装的每个可执行文件都会导致段错误。

&#34;来源&#34;同一页面上的选项不起作用,因为依赖关系要么彼此重叠,要么首先不能直接使用。

http://new-www.haskell.org/downloads/osx的ghc需要的Mac OS版本比我更高版本。 (旧版本的链接不会误入歧途。)

解决方案(回想起来很明显)是port install haskell-platformport install hs-cabal-install以及cabal install Elm ...。我确实必须运行其中一个安装程序两次,因为它找不到hackage.haskell.org(这是一个&#39;用户&#39;错误?)但我的hello-world.elm现在编译。

再次感谢大家。

1 个答案:

答案 0 :(得分:1)

看起来您已安装的元素存在一些依赖性问题。您可能需要将其安装在沙箱中。

首先,更新到最新版本的cabal:

$ cabal update
$ cabal install cabal cabal-install

接下来,确保cabal上已安装$PATH版本。

$ which cabal
> /path/to/cabal/bin/cabal

如果它显示/usr/bin/cabal之类的内容,您需要export cabal加入$PATH。对我来说这是`/home/username/.cabal/bin

$ export PATH=/path/to/cabal/bin/cabal;$PATH

再次运行which cabal并确保它指向该路径。

现在您拥有最新版本的cabal。运行以下命令:

$ mkdir elm
$ cd elm
$ cabal sandbox init

这将初始化一个沙箱,其中依赖项完全独立于其他安装。在此目录中,您应该能够通过运行:

来安装elm平台
$ cabal install Elm elm-repl elm-reactor elm-get

这些将安装在名为.cabal-sanbox/bin/的子目录中。为方便起见,您可能希望将其添加到$PATH中,以便可以从任何目录运行可执行文件。

希望这有帮助!