公司要用到rabbitmq,在家里尝试安装了下,发现通过yum安装的openssl和erlang还有兼容性问题,比较坑,于是通过源码重装openssl。
问题首先发现于添加用户的时候,通过rabbitmqctl add_user总是报错:
Error: {undef,
[{crypto,hash,XXXXXXXXXXXXX等错误
日志中记录如下:
Unable to load crypto library. Failed with error:
"load_failed, Failed to load NIF library: '/usr/local/lib/erlang/lib/crypto-3.2/priv/lib/crypto.so: undefined symbol: EC_GROUP_new_curve_GF2m'"
OpenSSL might not be installed on this system
安装openssl过程中,如果直接运行./config是不会产生libcrypto.so动态库的,只有静态库。得重新执行./config shared命令并重新编译make && make install才会出来动态库。
之后make clean Erlang的源码,重新编译并安装,之后在erlang中执行crypto:start().,回显ok就好。重新在rabbitmq中添加用户,成功,问题解决。
比较坑,大把大把的时间花在这种破事上,但谁叫我不会erlang呢T_T