Erlang 安装问题:加密失败

Erlang installation issue: crypto failure

这个问题不同于发布的另一个 Erlang 加密失败问题,因为环境不是 Windows,openssl 和 libssl-dev 先决条件是以标准方式安装的。该问题在 Erlang 中的源代码中确定,而不是 Riak 问题,尽管它是相关的。

在 Ubuntu 14.04 LTS x64 上安装 Erlang 16B02 作为 Raik 2.1.1 的先决条件。

Erlang 已按照安装 erlang 的 riak 指南下载并安装:http://docs.basho.com/riak/latest/ops/building/installing/erlang/

先决条件安装在 Erlang 之前(包括 openssl 和 libssl-dev)。构建工作正常,erlang shell 打开正常。

Riak 下载正常,但 $ make rel 失败,错误如下:-

fatal: Not a git repository (or any of the parent directories): .git
Using rebar.config.lock file to fetch dependencies
./rebar -C rebar.config.lock get-deps
Uncaught error in rebar_core: 
{'EXIT',
  {undef,
      [{crypto,start,[],[]},
  {rebar,run_aux,2,
      [{file,"src/rebar.erl"},{line,212}]},
  {rebar,main,1,
      [{file,"src/rebar.erl"},{line,58}]},
  {escript,run,2,
      [{file,"escript.erl"},{line,747}]},
  {escript,start,1,
      [{file,"escript.erl"},{line,277}]},
  {init,start_it,1,[]},
      {init,start_em,1,[]}]}}
=ERROR REPORT==== 11-Aug-2015::14:42:28 ===
Loading of /usr/local/lib/erlang/lib/crypto-3.1/ebin/crypto.beam failed: badfile
make: *** [locked-deps] Error 1

在一些研究指出 erlang 加密是一个问题之后,我在 erlang shell 中尝试了以下内容:

Eshell V5.10.3  (abort with ^G)
1> crypto:start().
** exception error: undefined function crypto:start/0
2> 
=ERROR REPORT==== 11-Aug-2015::14:48:14 ===
Loading of /usr/local/lib/erlang/lib/crypto-3.1/ebin/crypto.beam failed: badfile

在我看来,这是我无法解决的 erlang 安装错误。任何建议将不胜感激。

你没有说你在哪个平台上或你如何构建 OTP,但我的猜测是 ./otp_build(或 ./configure)没有在预期的地方找到 OpenSSL,只是默默地遗漏了。

如果找不到它,使用 --with-ssl 标志应该会强制它失败,如果需要,您可以添加到开关的显式路径。

Basho OTP 构建文档并不像它们可能的那样详细,但是从 OTP_R16B02_basho8 开始的任何内容都应该在所有支持的平台上正确构建(和 运行)。