麒麟arm系统部署rabbitmq有四种实测方法:一、rpm包安装法,需确保aarch64架构及erlang与rabbitmq版本严格匹配;二、源码编译法,适用于离线环境,需手动配置openssl路径;三、docker容器化法,拉取原生arm镜像快速部署;四、麒麟专用离线包集成法,一键强制安装并自动初始化。

如果您在麒麟操作系统上部署RabbitMQ时遇到依赖缺失、架构不匹配或服务无法启动等问题,则很可能是由于ARM64平台特有的软件包适配性、Erlang版本强约束或系统级组件(如socat、OpenSSL)版本冲突所致。以下是针对麒麟OS(V10 SP2及以上,aarch64架构)安装RabbitMQ的多种实测可行方法:
一、RPM包直接安装法(适用于有网络且源可用环境)
该方法利用麒麟系统原生软件包管理器快速部署,要求系统已配置兼容的软件源或手动下载适配ARM64的RPM包。关键在于确保Erlang与RabbitMQ版本严格匹配,且依赖项完整。
1、确认系统架构为aarch64:执行uname -m,输出必须为aarch64。
2、安装基础编译与运行依赖:yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel xmlto perl。
3、安装socat(RabbitMQ 3.7+必需):yum -y install socat;若失败,则手动下载适配麒麟V10的ARM64版rpm并安装:rpm -ivh socat-1.7.3.2-8.p01.ky10.aarch64.rpm。
4、下载并安装Erlang:访问https://packagecloud.io/rabbitmq/erlang,选择与目标RabbitMQ版本对应的ARM64 RPM包(例如erlang-23.3.1-1.ky10.aarch64.rpm),执行rpm -ivh erlang-*.rpm。
5、下载并安装RabbitMQ Server:从https://github.com/rabbitmq/rabbitmq-server/releases获取对应版本的noarch RPM(如rabbitmq-server-3.9.5-1.el7.noarch.rpm),执行rpm -ivh rabbitmq-server-*.rpm。
二、源码编译安装法(适用于离线或定制化需求场景)
该方法绕过RPM依赖检查,完全控制编译参数,适用于国产化信创环境中OpenSSL、wxWidgets等系统库版本受限的情况,需手动处理Erlang和RabbitMQ两级编译。
1、下载Erlang源码包(如otp_src_27.3.tar.gz)并解压至/usr/local/src目录。
2、进入源码目录,执行配置命令:./configure --prefix=/usr/local/erlang --without-javac --with-ssl=/usr/lib64 --enable-threads --enable-smp-support;其中--with-ssl=/usr/lib64确保链接麒麟系统自带OpenSSL 1.1.x库。
3、编译并安装:make -j$(nproc) && make install;完成后执行export PATH=/usr/local/erlang/bin:$PATH并写入/etc/profile。
4、下载RabbitMQ通用Unix发行包(如rabbitmq-server-generic-unix-4.2.0.tar.xz),解压后移动至/usr/local/rabbitmq。
5、配置环境变量:export RABBITMQ_HOME=/usr/local/rabbitmq,export PATH=$PATH:$RABBITMQ_HOME/sbin,执行source /etc/profile。
三、Docker容器化部署法(适用于轻量测试与快速验证)
该方法将RabbitMQ及其所有依赖封装于镜像中,规避宿主机环境差异,特别适合麒麟V10 SP2及以上内核≥4.19的系统,且无需手动处理Erlang兼容性问题。
1、安装Docker引擎:执行yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo,再运行yum install -y docker-ce docker-ce-cli containerd.io。
2、配置Docker daemon以适配麒麟系统:echo '{"exec-opts": ["native.cgroupdriver=systemd"], "registry-mirrors": ["https://registry.docker-cn.com"]}' > /etc/docker/daemon.json。
3、重启Docker服务:systemctl daemon-reload && systemctl restart docker && systemctl enable docker。
4、拉取ARM64官方镜像:docker pull rabbitmq:3.11-management(该镜像自3.8起原生支持aarch64)。
5、运行容器并映射关键端口:docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:3.11-management。
四、麒麟专用离线包集成安装法(适用于无外网、高安全等级环境)
该方法基于麒麟生态预构建的离线安装包集合,包含已适配飞腾/鲲鹏芯片的Erlang、RabbitMQ及全部依赖RPM,避免版本手工匹配风险,部署过程零编译。
1、获取离线包合集:从麒麟软件官网或可信渠道下载kylin-rabbitmq-offline-v10-sp2-aarch64.tar.gz,解压至/opt/kylin-offline。
2、进入解压目录,一次性安装全部依赖:rpm -Uvh *.rpm --nodeps --force;此操作跳过依赖校验,强制覆盖安装所有组件。
3、执行RabbitMQ初始化脚本:/opt/kylin-offline/init-rabbitmq.sh;该脚本自动配置/etc/rabbitmq/rabbitmq.conf,启用management插件,并设置默认管理员账户。
4、启动服务:systemctl start rabbitmq-server;检查状态:systemctl status rabbitmq-server,确认active (running)且端口15672监听正常。
5、开放防火墙端口:firewall-cmd --zone=public --add-port=15672/tcp --permanent && firewall-cmd --reload。










