【问题标题】:Unable to start RabbitMQ: undefined function rabbitmqctl_escript:main/1无法启动 RabbitMQ:未定义函数 rabbitmqctl_escript:main/1
【发布时间】:2021-01-15 21:31:43
【问题描述】:

我想启动安装为 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天拼搏的结果了!

Escript 检查说:

-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 rabbitmqctl escript


    【解决方案1】:

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

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

    【讨论】:

    【解决方案2】:

    通过删除在 PATH 和其他环境变量中使用的 RabbitMQ 目录的软链接解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2013-11-15
      • 2012-02-17
      • 2013-01-27
      • 2019-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多