如何在 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

成功!!!

相关推荐
用户8307196840821 天前
RabbitMQ vs RocketMQ 事务大对决:一个在“裸奔”,一个在“开挂”?
后端·rabbitmq·rocketmq
初次攀爬者2 天前
RabbitMQ的消息模式和高级特性
后端·消息队列·rabbitmq
初次攀爬者4 天前
ZooKeeper 实现分布式锁的两种方式
分布式·后端·zookeeper
让我上个超影吧5 天前
消息队列——RabbitMQ(高级)
java·rabbitmq
塔中妖5 天前
Windows 安装 RabbitMQ 详细教程(含 Erlang 环境配置)
windows·rabbitmq·erlang
断手当码农5 天前
Redis 实现分布式锁的三种方式
数据库·redis·分布式
初次攀爬者6 天前
Redis分布式锁实现的三种方式-基于setnx,lua脚本和Redisson
redis·分布式·后端
业精于勤_荒于稀6 天前
物流订单系统99.99%可用性全链路容灾体系落地操作手册
分布式
Ronin3056 天前
信道管理模块和异步线程模块
开发语言·c++·rabbitmq·异步线程·信道管理
Asher05096 天前
Hadoop核心技术与实战指南
大数据·hadoop·分布式