首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Debian上的RabbitMQ从3.8.2升级到3.8.6 --如何安装最新版本?

Debian上的RabbitMQ从3.8.2升级到3.8.6 --如何安装最新版本?
EN

Stack Overflow用户
提问于 2020-08-11 02:48:34
回答 1查看 2K关注 0票数 2

我正在尝试将RabbitMQ从3.8.2版本升级到最新版本3.8.6,该集群是通过Azure中的Bitnami创建的两个Linux (运行Debian9Sch)。根据RabbitMQ文档,我可以通过停止其中一个节点,在其上安装最新版本,重新启动该节点,然后在另一个节点上执行相同的操作来进行滚动升级。这些机器使用Erlang 22运行,RabbitMQ状态与3.8.6版本兼容:

代码语言:javascript
复制
bitnami@AI-RabbitMQ-02:~$  erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().'  -noshell
"22"

使用PackageCloud安装的文档步骤之后,我成功地安装了存储库,输出如下:

代码语言:javascript
复制
bitnami@AI-RabbitMQ-02:~$ sudo rabbitmqctl stop_app

bitnami@AI-RabbitMQ-02:~$ curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.deb.sh | sudo bash                                                                                                          abbitmq/rabbitmq-server/script.deb.sh | sudo bash
Detected operating system as debian/9.
Checking for curl...
Detected curl...
Checking for gpg...
Detected gpg...
Running apt-get update... done.
Installing debian-archive-keyring which is needed for installing
apt-transport-https on many Debian systems.
Installing apt-transport-https... done.
Installing /etc/apt/sources.list.d/rabbitmq_rabbitmq-server.list...done.
Importing packagecloud gpg key... done.
Running apt-get update... done.
The repository is setup! You can now install packages.

然后,我尝试下一步,安装RabbitMQ,出现以下错误:

代码语言:javascript
复制
bitnami@AI-RabbitMQ-02:~$ sudo apt-get install rabbitmq-server=3.8.6-1
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:19.2.1+dfsg-2+deb9u3 i                                                                                                             s 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:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-eldap (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-inets (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-mnesia (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-os-mon (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-parsetools (>= 1:21.3) but 1:19.2.1+dfsg-2+de                                                                                                             b9u3 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-public-key (>= 1:21.3) but 1:19.2.1+dfsg-2+de                                                                                                             b9u3 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-runtime-tools (>= 1:21.3) but 1:19.2.1+dfsg-2                                                                                                             +deb9u3 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-ssl (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3 is                                                                                                              to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-syntax-tools (>= 1:21.3) but 1:19.2.1+dfsg-2+                                                                                                             deb9u3 is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-tools (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              is to be installed or
                            esl-erlang (>= 1:21.3) but it is not installable
                   Depends: erlang-xmerl (>= 1:21.3) but 1:19.2.1+dfsg-2+deb9u3                                                                                                              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.

我也尝试过使用Bintray选项进行安装,但是没有效果。我也尝试过用dpkg -i手动安装,但我不确定如何处理包依赖关系,因为兔子页面上的链接是用于该步骤的在任何地方都不会。任何对升级的帮助都将不胜感激。非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 22:22:37

我有Erlang23和RabbitMQ Server3.8.2(它们不完全兼容,所以我决定将RabbitMQ服务器升级到3.8.9,因为我在运行应用程序时遇到了一些问题)

在Ubuntu20.04的AWS EC2实例上,我有一个带有一个节点的集群(未按照RabbitMQ的建议通过插件进行正确的配置--我计划稍后再这样做)。

我所做的和它对我的作用(在sudo或根sudo su下执行的命令):

  1. 对于shutdown来说,重要的不仅仅是stop_app,因为Erlang也需要停止,而stop_app只停止RabbitMQ服务器离开Erlang,这可能会在启动新版本的RabbitMQ服务器时给您带来错误--因为端口25672正在忙着处理另一个应用程序: rabbitmqctl shutdown
  2. 将rabbitmq文件从旧版本(由于某种奇怪的原因而不是运行的3.8.2 )改为新的版本--在我的例子中是3.8.9: vim /etc/apt/preferences.d/rabbitmq
  3. 重新检查是否安装了依赖项: apt-get -y install socat logrotate init-system-helpers adduser
  4. 如果您没有wget,请安装wget: apt-get -y install wget
  5. 下载最新的服务器安装文件.deb包: wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server_3.8.9-1_all.deb
  6. 安装: dpkg -i rabbitmq-server_3.8.9-1_all.deb
  7. 删除发行版: rm rabbitmq-server_3.8.9-1_all.deb
  8. 检查服务器是否停止(可能是冗余命令): service rabbitmq-server stop
  9. 重新启动服务器: service rabbitmq-server restart
  10. 检查服务器状态: rabbitmq-server status
  11. 如果它给您一个错误引导失败。分发端口25672正在由另一个节点使用,请检查谁使用该端口--可能是Erlang使用该端口: lsof -i :25672
  12. 启动RabbitMQ应用程序: rabbitmqctl start_app
  13. 检查节点状态: rabbitmqctl status

您应该会看到升级的RabbitMQ服务器版本(在我的示例3.8.9中)以及最新的Erlang版本(在我的示例23中)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63350783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档