微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法启动RabbitMQ:未定义的函数Rabbitmqctl_escript:main / 1

如何解决无法启动RabbitMQ:未定义的函数Rabbitmqctl_escript:main / 1

我想启动安装为JFrog Xray的RabbitMQ,我得到:

-bash-4.2$ /opt/jfrog/xray/app/third-party/rabbitmq/escript/rabbitmqctl
escript: exception error: undefined function rabbitmqctl_escript:main/1
  in function  escript:run/2 (escript.erl,line 758)
  in call from escript:start/1 (escript.erl,line 277)
  in call from init:start_em/1
  in call from init:do_boot/3

我知道这不是启动服务的标准方式,这已经是3天战斗的结果!

脚本检查说:

-bash-4.2$ escript -s /opt/jfrog/xray/app/third-party/rabbitmq/escript/rabbitmqctl
escript: Cannot load module rabbitmqctl_escript from archive

已安装的版本:

# rpm -qa | grep 'erlang\|xray\|socat'
socat-1.7.3.2-2.el7.x86_64
erlang-22.3.4-1.el7.x86_64
xray-3.8.6-1.el6.x86_64

RabbitMQ是Xray的一部分。 版本:RabbitMQ 3.8.3 首先使用sbin / rabbitmq-server,但由于Xray使用Rabbitmqctl,因此也应使用。

解决方法

卸载RabbitMQ和Erlang/OTP,然后重新安装。确保卸载所有 erlang 版本,然后只重新安装一个,然后它是兼容的 RabbitMQ 版本。这对我有用。

编辑 1 就我而言,我没有意识到我的系统安装了多个 erlang 并且我安装了一个新的 erlang 和 rabbit mq。即使新版本也不起作用,我花了将近 2 天的时间寻找答案。但后来我只是阅读了一些信息,他们说一个系统中应该只安装一个版本的erlang。所以我检查并发现安装了 3 个 erlang 版本。然后我删除了所有内容并重新安装了erlang,然后是rabbit mq。这对我有用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。