如何在 Ubuntu22.04 上安装并开始使用 RabbitMQ

单体架构学的差不多了,可以朝着微服务进军了,笔者打算实操一下 RabbitMQ(这个和 Redis 一样重要的组件) 笔者这里采用的是本地 wsl2 的 Ubuntu22.04

先按指定的博客进行前置操作Ubuntu22.04 安装 RabbitMQ

解决 ARM Ubuntu 22.04 缺少 libssl 1.1 的问题

在安装 RabbitMQ 时,出现以下的报错信息

提示缺少依赖 libssl1.1,于是使用 apt 安装一下

c++ 复制代码
sudo apt install libssl1.1

发现找不到这个依赖包

经查阅资料了解到,在 Ubuntu 18.04 以后的版本中,libssl1.1 已经从仓库中被移除了,因此在 Ubuntu 20.04 和 Ubuntu 22.04 系统下,我们只能手动安装这个依赖包。

由于网上大多数教程都是基于 x86_64 平台的,使用的仓库和 ARM 平台是不同的。我们可以用浏览器打开官方的 ubuntu-ports 仓库来下载 libssl1.1,选择libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb然后单击下载

如果你的 Ubuntu 系统没有图形化界面,也可以使用 wget 命令来下载

c++ 复制代码
wget https://security.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb

依赖包下载完成后,进入其所在的目录(wget安装的软件一般在本目录),使用软件安装工具 dpkg 来安装

c++ 复制代码
sudo dpkg -i libssl1.1_1.1.1-1ubuntu2.1~18.04.23_amd64.deb

再执行安装 Erlang命令

c++ 复制代码
## Install Erlang packages
sudo apt-get install -y erlang-base \
                        erlang-asn1 erlang-crypto erlang-eldap erlang-ftp erlang-inets \
                        erlang-mnesia erlang-os-mon erlang-parsetools erlang-public-key \
                        erlang-runtime-tools erlang-snmp erlang-ssl \
                        erlang-syntax-tools erlang-tftp erlang-tools erlang-xmerl

安装成功

执行安装 RabbitMQ 命令
c++ 复制代码
## Install rabbitmq-server and its dependencies
sudo apt-get install rabbitmq-server -y --fix-missing

出现报错, 如下

仔细看看报错,初步猜测为版本对应不上

询问 deepseek

你的错误提示表明,rabbitmq-server 依赖 Erlang 26.0 或更高版本 ,但你的系统上安装的是 Erlang 25.2.31:25.2.3-1),导致版本冲突。

解决方法:

1. 升级 Erlang 到 26.0+

RabbitMQ 3.12.x 需要 Erlang 26.0+,而你的系统可能默认安装的是较旧的 Erlang 25.x。你需要先升级 Erlang:

  • Ubuntu/Debian (推荐使用 Erlang Solutions 提供的包):

    bash 复制代码
    # 添加 Erlang Solutions 仓库
    wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
    sudo dpkg -i erlang-solutions_2.0_all.deb
    sudo apt-get update
    
    # 安装 Erlang 26+
    sudo apt-get install esl-erlang
  • CentOS/RHEL

    bash 复制代码
    # 添加 Erlang Solutions 仓库
    sudo yum install https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
    sudo yum install esl-erlang
2. 安装兼容的 RabbitMQ 版本

如果你无法升级 Erlang,可以安装一个 兼容 Erlang 25.x 的 RabbitMQ 版本

  • RabbitMQ 3.11.x (支持 Erlang 25.x)
    例如:

    bash 复制代码
    sudo apt-get install rabbitmq-server=3.11.26-1

    或手动下载:

    bash 复制代码
    wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.11.26/rabbitmq-server_3.11.26-1_all.deb
    sudo dpkg -i rabbitmq-server_3.11.26-1_all.deb

检查版本兼容性

  • RabbitMQ 3.12.x → 需要 Erlang 26.0+
  • RabbitMQ 3.11.x → 支持 Erlang 25.2+

建议优先升级 Erlang,然后安装最新的 RabbitMQ 3.12.x。如果无法升级 Erlang,则降级 RabbitMQ 到 3.11.x。

你可以运行 erl -versionrabbitmqctl version 检查当前安装的版本。

这里采用的为 RabbitMq降低版本 的方法

先提前更新一下

c++ 复制代码
sudo apt update
sudo apt upgrade

安装

c++ 复制代码
sudo apt-get install rabbitmq-server=3.11.26-1

查看启动状态

c++ 复制代码
systemctl status rabbitmq-server

成功!!!

相关推荐
liulilittle5 小时前
C++ TAP(基于任务的异步编程模式)
服务器·开发语言·网络·c++·分布式·任务·tap
码字的字节5 小时前
ZooKeeper在Hadoop中的协同应用:从NameNode选主到分布式锁实现
hadoop·分布式·zookeeper·分布式锁
武子康7 小时前
Java-80 深入浅出 RPC Dubbo 动态服务降级:从雪崩防护到配置中心秒级生效
java·分布式·后端·spring·微服务·rpc·dubbo
itLaity12 小时前
基于Kafka实现简单的延时队列
spring boot·分布式·kafka
qq_5298353512 小时前
Zookeeper的简单了解
分布式·zookeeper·云原生
smileNicky13 小时前
RabbitMQ有多少种Exchange?
分布式·rabbitmq
你我约定有三13 小时前
RabbitMQ--消息丢失问题及解决
java·开发语言·分布式·后端·rabbitmq·ruby
Java初学者小白13 小时前
秋招Day19 - 分布式 - 分布式事务
java·分布式
程序员小羊!15 小时前
Zookeeper 3.6.3【详细技术讲解】整
分布式·zookeeper·云原生
Java水解17 小时前
RabbitMQ用法的6种核心模式全面解析
后端·rabbitmq