美文网首页
Cannot start riak: “Failed to lo

Cannot start riak: “Failed to lo

作者: keroro520 | 来源:发表于2015-08-23 16:54 被阅读139次

    问题

    在osx 10.10上安装riak,一直跑不起来,提示错误(详见stackoverflow):

    [error] Error loading "erlang_js_drv": "dlopen(/User/keroro/lib/erlang_js-1.2.2/priv/erlang_js_drv.so, 
    2): no suitable image found.  Did find:\n\t/Users/keroro/lib/erlang_js-1.2.2/priv/erlang_js_drv.so: mach-o, but wrong architecture"
    
    [error] CRASH REPORT Process erlang_js_sup with 0 neighbours exited with reason: bad return value: {error,{load_error,"Failed to load erlang_js_drv.so"}} in gen_server:init_it/6 line 332
    
    [error] CRASH REPORT Process <0.115.0> with 0 neighbours exited with reason: bad return value: {error,{load_error,"Failed to load erlang_js_drv.so"}} in erlang_js:start(normal, []) in application_master:init/4 line 138
    

    解决:用gnu-gcc编译erlang

    造成这个问题的具体原因未知,只知道是因为编译erlang和riak的编译器不一致造成的。我之前是用llvm-gcc编译erlang,而gnu-gcc编译riak,所以才提示“wrong architecture”!我之后重新用gnu-gcc编译erlang,再用新编译好的erlang编译riak,就能够正常跑了。

    其实参照Installing ErlangRiak Installing on Mac OS X
    就可以了,只不过我之前没找到这篇文档,被坑得比较久而已。

    1. 安装gnu的gcc
    osx上默认的gcc一般都是llvm-gcc,可以执行`gcc --version`看一下,如果是“Apple LLVM version”的话就是llvm-gcc。
      
    我偷懒,直接装xcode,xcode包里面含有gnu的gcc。当然你也可以不安装xcode,直接装gnu的gcc,不过我没尝试过。
    
    1. 借助kerl来安装的。
      参照Installing Erlang,系统在10.6以及更新的,在~/.kerlrc里面添加下面选项:

      ./configure --disable-hipe --enable-smp-support --enable-threads --enable-kernel-poll --enable-darwin-64bit

    之后的步骤就是正常装erlang了。
    
        kerl build R15B03 R15B03
        kerl install R15B03 path-to-installation-toR15B03
    

    花絮

    就上面这句“wrong architecture”误导我,我还以为是因为我的系统太新了,riak跑不起来,所以一直是ssh到另外一台机子上跑riak,弄得我测试什么的都巨麻烦。

    不过说真的,这种很容易碰见的问题,在网络上搜竟然没多少结果,可见riak确实不算太流行。

    另外,还得感谢ntalbott的提醒

    相关文章

      网友评论

          本文标题:Cannot start riak: “Failed to lo

          本文链接:https://www.haomeiwen.com/subject/zisxcttx.html