【问题标题】:Unable to install rabbitmq due to incorrect versions of erlang dependencies由于 erlang 依赖项的版本不正确,无法安装 rabbitmq
【发布时间】:2020-04-17 02:06:39
【问题描述】:

我安装了erlang 21.3

$ erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell
"21"

rabbitmq 安装程序不这么认为:

sudo apt-get install -y rabbitmq-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 rabbitmq-server : Depends: erlang-base (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            erlang-base-hipe (>= 1:21.3) but it is not going to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-crypto (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-eldap (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-inets (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-mnesia (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-os-mon (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-parsetools (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-public-key (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-runtime-tools (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-ssl (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-syntax-tools (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-tools (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-xmerl (>= 1:21.3) but 1:20.2.2+dfsg-1ubuntu2 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
E: Unable to correct problems, you have held broken packages.

注意:以下问题类似——但对于RedHatyum install 指令并不直接适用于apt-get Installing RabbitMQ on Red Hat - wrong Erlang version

需要做什么来修复这个安装过程?我在ubuntu 18.0.4

【问题讨论】:

    标签: rabbitmq erlang


    【解决方案1】:

    我在安装 elixir 时遇到了类似的问题。我认为原因是现有的 erlang 安装阻止了安装两个不同软件包提供的所需版本的 erlang。

    对我来说,安装 esl-erlang 和 elixir 解决了这个问题,例如,sudo apt-get install elixir esl-erlang。因此,您可能需要显式安装所需版本的 erlang-base 或 esl-erlang。

    【讨论】:

    • 我从源代码安装了erlang - 那么这一切是如何工作的呢?
    • 我怀疑 apt 无法识别未使用 apt 安装的软件。因此,如果您通过 apt 安装 erlang,那么这个基于 apt 的 erlang 安装可能会覆盖您之前基于源代码的 erlang 安装。在这种情况下,最好删除从源安装的软件,然后使用 apt 安装它。 Here 卸载从源安装的erlang的指令。
    • 我看到很多人对3.8rabbitmq 有问题,我msyelf 尝试了太多东西。看起来已弃用的 3.6.12 尝试安装,但随后无法运行。 RIPrabbitmq
    • 如果有帮助,与 Ubuntu 19.10 捆绑在一起的 rabbitmq 3.7.8 似乎可以正常安装和运行(与在所有方面都可以正常运行不同)。
    • 安装工作 100% 的时间如果您阅读并遵循说明rabbitmq.com/install-debian.html
    【解决方案2】:

    以下命令序列将在 Ubuntu 18 上安装 Erlang 和 RabbitMQ,如 here 所述:

    export DEBIAN_FRONTEND=noninteractive
    
    apt-get update -y
    
    apt-get install curl gnupg -y
    
    curl -fsSL https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc | apt-key add -
    
    apt-get install apt-transport-https
    
    tee /etc/apt/sources.list.d/bintray.rabbitmq.list <<EOF
    deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang
    deb https://dl.bintray.com/rabbitmq/debian bionic main
    EOF
    
    apt-get update -y
    
    apt-get install rabbitmq-server -y --fix-missing
    
    until lsof -i:5672; do echo "Waiting for RabbitMQ to start..."; sleep 1; done
    rabbitmq-plugins enable rabbitmq_management
    

    如果您选择从源代码安装 Erlang,您需要自己安装,我建议使用 generic-unix RabbitMQ 包。


    注意:RabbitMQ 团队会监控 rabbitmq-users mailing list,并且有时只回答 StackOverflow 上的问题。

    【讨论】:

      猜你喜欢
      • 2017-05-15
      • 1970-01-01
      • 2022-10-15
      • 2017-06-26
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多