2017-10-16 229 views
0

我通过yarn global add elm安装了Elm。但是,每当我跑elm -v,我得到以下错误:在Centos上安装Elm 6.9

/usr/local/share/.config/yarn/global/node_modules/elm/Elm-Platform/0.18.0/.cabal-sandbox/bin/elm: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory 

我已经通过yum安装完毕,haskell-platform包和gmp包。不幸的是,我仍然收到相同的错误。

任何帮助诊断这个错误将不胜感激。谢谢。


编辑#1

检查ghc,我看到的版本是7.0.4。显然这是一个非常旧的版本ghc。我会看看我是否可以更新ghc。

编辑#2

好像是因为我在Centos 6.9,我溶胶。 haskell-platform回购是来自2011年。我将不得不寻找建立平台的其他方式。

+1

你能告诉我们GHC版本sion你有,也许重新安装它 - 如果libgmp丢失也许还有一个路径问题,可以通过重新安装修复 – epsilonhalbe

+1

或者,您可以安装堆栈并使用'stack setup'安装haskell,然后您可以通过克隆git来安装el回购和使用堆栈/ ghc构建 – epsilonhalbe

+1

当我在家时,我可以发布工作堆栈.yaml – epsilonhalbe

回答

2

这里是(希望)可靠CentOS上安装榆树

  1. 删除榆树和GHC的所有先前安装的指令列表(我们将安装一个新的GHC)
  2. 通过遵循installation instructions安装堆栈
  3. 克隆榆树来源:

    mkdir elm && cd elm 
    git clone https://github.com/elm-lang/elm-compiler 
    git clone https://github.com/elm-lang/elm-make 
    git clone https://github.com/elm-lang/elm-package 
    git clone https://github.com/elm-lang/elm-reactor 
    git clone https://github.com/elm-lang/elm-repl 
    
  4. 把下面stack.yaml在新创建的elm目录

    resolver: lts-9.9 
    
    packages: 
    - elm-compiler/ 
    - elm-make/ 
    - elm-package/ 
    - elm-compiler/profiling/ 
    - elm-reactor/ 
    - elm-repl/ 
    # Dependency packages to be pulled from upstream that are not in the resolver 
    # (e.g., acme-missiles-0.3) 
    extra-deps: 
    - aeson-pretty-0.7.2 
    - binary-0.7.6.1 
    - ghc-time-alloc-prof-0.1.0 
    - http-client-0.4.31.2 
    - http-client-tls-0.2.4.1 
    - http-types-0.8.6 
    - vector-0.11.0.0 
    - primitive-0.6.1.0 
    - websockets-0.9.8.2 
    
    # Override default flag values for local packages and extra-deps 
    flags: {} 
    
    # Extra package databases containing global packages 
    extra-package-dbs: [] 
    
  5. stack setup(可能需要一些时间)
  6. stack build(见上 - 喝杯咖啡)
  7. stack install(不要忘记加上安装位置(通常为~/.local/bin)您$PATH
  8. elm -v应该工作现在
+0

嗨epsilon,谢谢你的帮助。看到我上面的评论。如果你测试这个并且它可以工作,我会将其标记为已回答。再次感谢您抽出时间帮助同事。 –