在 centos 中使用 kerl 安装 erlang 时出现加密错误

crypto error when installing erlang with kerl in centos

我一直在尝试通过 kerl 安装 erlang16。我收到以下错误:

 Uncaught error in rebar_core: {'EXIT',
 {undef,
 [{crypto,start,[],[]},

很多人以前都遇到过这个问题,但 none 这些解决方案对我有用。

我是按照这个做的: Unable to install erlang on cent os 但失败了

如果我这样做,crypto:start(),它不会 return 我没问题。有人可以帮忙吗。谢谢

错误信息:

  1> crypto:start().
  ** exception error: undefined function crypto:start/0
  2> 
  =ERROR REPORT==== 2-Apr-2016::07:28:13 ===
  Unable to load crypto library. Failed with error:
  "load_failed, Failed to load NIF library: 
 '/usr/local/lib/erlang/lib/crypto-       3.0/priv/lib/crypto.so: undefined  symbol: EC_GROUP_new_curve_GF2m'"
  OpenSSL might not be installed on this system.

  =ERROR REPORT==== 2-Apr-2016::07:28:13 ===
  The on_load function for module crypto returned {error,
                                             {load_failed,
                                              "Failed to load NIF library:  '/usr/local/lib/erlang/lib/crypto-3.0/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'"}}

这样做没问题:

 Eshell V5.10.2  (abort with ^G)
 1> application:start(crypto).
 ok

您的 Erlang 是在没有 OpenSSL 的情况下构建的。从源代码构建 Erlang 时,OpenSSL 尚未安装或启用。构建 crypto 应用程序需要 OpenSSL。见 Erlang installation guide.

检查 crypto 是否已构建的最简单方法就是像您所做的那样,尝试启动 crypto

1> application:start(crypto).
ok

能否尝试从Erlang Solutions下载预编译版本?否则,您将需要找出为什么 kerl 没有选择 OpenSSL(如果已安装)。也许尝试验证 configure 或编译日志。