RabbitMQ系列(三)RabbitMQ Server的安装(基于Linux RPM)

2,434 阅读4分钟

提示:

  1. 在Fedora和RHEL仓库中包含了RabbitMQ,但这些版本往往是滞后的且不再被支持,我们建议你使用PackageCloud或者Bintray的Yum仓库进行安装;
  2. RabbitMQ RPM包将需要sudo特权来安装和管理。在没有sudo的环境中,可以考虑使用通用的二进制构建;

安装RabbitMQ的方式

  1. 使用PackageCloud或者Bintray的Yum仓库中的安装包进行安装(该选项强烈建议);
  2. 下载并使用rpm命令安装(该选项需手动安装所有依赖包);

支持的发行版(基于RPM)

  1. CentOS 8.x, 7.x和6.x(有三个单独的RPM包:8.x, 7.x和6.x);
  2. RedHat企业版8.x, 7.x和6.x(和CentOS一样);
  3. Fedora 28~30(使用CentOS 8.x或者7.x);

RabbitMQ的依赖包

  1. erlang
  2. socat
  3. logrotate

安装Erlang

安装方式:

  1. RabbitMQ团队生成一个简化的包,只提供运行RabbitMQ所需的组件;
  2. Erlang解决方案生成的安装包通常是合理的最新版本,并涉及安装可能过多的依赖项列表。
  3. EPEL(“企业Linux的额外软件包”)。RedHat/Fedora组织的一部分,提供了许多附加包,包括Erlang;
  4. openSUSE为每个发行版生成Erlang安装包(openSUSE和SLES);

*方式一:RabbitMQ的零依赖Erlang

运行RabbitMQ的零依赖Erlang RPM安装包可以通过PackageCloudBintray上的Yum仓库安装,也可以直接下载

#执行如下命令:下载并执行RPM脚本。其中会下载仓库地址配置文件到/etc/yum.repos.d/目录下
> curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

#执行如下命令进行安装最新版本的Erlang
#或者指定版本sudo yum install erlang-22.3-1.el7.x86_64
> sudo yum install erlang

*方式二:Erlang解决方案的Yum仓库中的Erlang

遵循Erlang解决方案中“Download”下的说明。

注意,Erlang解决方案往往提供最新的Erlang版本,RabbitMQ可能支持也可能不支持这些版本。当使用此选项安装Erlang时,建议使用绑定的版本。

方式三:Erlang解决方案的单模块Erlang

Erlang解决方案下载并安装适当的esl-erlang RPM。

方式四:openSUSE的Erlang

openSUSE仓库提供了Erlang,因此可以使用Zypper安装它:

> sudo zypper in erlang

在标准仓库中可用的Erlang版本实际上会落后于最新的版本。要使用带有最新功能的最新版本,请添加用于Erlang的openSUSE工厂仓库:

# add the openSUSE erlang factory, obs:// extracts the http url for the matching distro.
> sudo zypper ar -f  obs://devel:languages:erlang:Factory openSUSE-Erlang-Factory

# import the signing key and refresh the repository
> sudo zypper --gpg-auto-import-keys refresh

# install a recent Erlang version
> sudo zypper in erlang

方式五:EPEL仓库的Erlang

按照EPEL FAQ中的步骤在目标机器上启用EPEL,然后作为root用户运行以下命令:

> yum install erlang

安装Socat

Socat官网下安装包安装即可!

安装RabbitMQ

*方式一:使用PackageCloud的Yum仓库

可以从PackageCloud获得包含RabbitMQ安装包的Yum仓库。 一个快速安装的方式是使用PackageCloud脚本,也可以使用PackageCloud通过yum安装最新的Erlang版本。

更多的安装选项:
1. 使用PackageCloud Chef Cookbook
2. 使用PackageCloud Puppet模块
3. 手动

PackageCloud使用自己的GPG密钥的发布安装包。到2018年底,PackageCloud正在进行签名密钥迁移。与依赖“master key”不同,项目将迁移到使用特定于仓库的签名键。在迁移完成之前,为了向前兼容,新旧密钥都必须导入:

# import the new PackageCloud key that will be used starting December 1st, 2018 (GMT)
> rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey

# import the old PackageCloud key that will be discontinued on December 1st, 2018 (GMT)
> rpm --import https://packagecloud.io/gpg.key

在导入两个密钥之后,请遵循PackageCloud仓库的设置说明。

方式二:使用Bintray的Yum仓库

可以从Bintray的Yum仓库中获取RabbitMQ安装包。安装包页面提供一个仓库设置帮助,最新版本的Erlang也可以通过Bintray的Yum仓库进行安装。 在使用Bintray的Yum仓库之前,必须先导入RabbitMQ的签名,这是为了RPM工具信任Yum仓库所提供的安装包。

> rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

为了使用Yum仓库,必须在/etc/yum.repos.d/目录下添加一个.repo文件,内容类似如下:
CentOS 8

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/8/
gpgcheck=0
repo_gpgcheck=0
enabled=1

CentOS 7

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

CentOS 6

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1

OpenSUSE

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/opensuse/42.1/
gpgcheck=0
repo_gpgcheck=0
enabled=1

SLES 11.x:

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/sles/11
gpgcheck=0
repo_gpgcheck=0
enabled=1

CentOS 7 且 RabbitMQ 3.7

[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1

*方式三:下载并使用RPM

下载RabbitMQ安装包后,使用root用户执行如下命令:

> rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
# This example assumes the CentOS 8 version of the package.
# For CentOS 7, replace "el8" with "el7".
> yum install rabbitmq-server-3.8.3-1.el8.noarch.rpm

或者

> rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
# This example assumes the CentOS 8 version of the package.
# For CentOS 7, replace "el8" with "el7".
> yum install rabbitmq-server-3.8.3-1.el8.noarch.rpm

运行RabbitMQ

安装RabbitMQ服务时,RabbitMQ服务默认不作为守护进程启动。在系统启动时(作为管理员运行时)默认启动守护进程:

> chkconfig rabbitmq-server on

启动与关闭RabbitMQ服务:

> /sbin/service rabbitmq-server start
> /sbin/service rabbitmq-server stop

上一篇:RabbitMQ系列(二)RabbitMQ Server的安装(基于二进制)
下一篇:RabbitMQ系列(四) RabbitMQ的虚拟主机