服务器构建说明
概述
本节介绍获取 RabbitMQ 服务器源代码副本的过程,以及从源代码构建服务器的说明。
开源 RabbitMQ 构建基础架构是开源的
除了密钥、证书和软件包分发基础架构(如 deb*.rabbitmq.com 或 yum*.rabbitmq.com)之外,开源 RabbitMQ 的构建基础架构是在 GitHub 上公开开发的。
rabbitmq/build-env-images提供了用于生成版本的 OCI 镜像。rabbitmq/server-packages提供了 GitHub Actions 工作流。
从源代码构建
首先,从我们的 GitHub 存储库获取源代码。
git clone https://github.com/rabbitmq/rabbitmq-server.git rabbitmq
然后,使用 GNU Make 下载依赖项,并构建服务器以及 RabbitMQ 分发版附带的所有插件。
cd rabbitmq
make
必需的库和工具
要构建 RabbitMQ,必须安装一些工具。
Python
RabbitMQ 需要一个相对较新版本的 Python 和 simplejson。
simplejson.py 作为标准 json 库包含在 Python 分发版中。
Erlang/OTP 工具链和头文件
需要 Erlang 开发和运行时工具来编译 RabbitMQ 服务器、工具和一级插件。
请参阅Erlang 版本要求,了解支持的 Erlang 发行系列。
在基于 Debian 的系统上,必须安装 erlang-nox、erlang-dev 和 erlang-src 软件包。
Elixir
构建 RabbitMQ CLI 工具需要较新版本的 Elixir。
GNU Make
GNU make 是 RabbitMQ 使用的主要构建工具。
xsltproc 和 xmlto
必须提供 xsltproc(它是 libxslt 的一部分)和 xmlto 的较新版本。
zip 和 unzip
如果通过存档而非 git 存储库克隆获取源代码,则需要 zip 和 unzip。
构建服务器
切换到 rabbitmq 目录,然后键入 make。
其他有趣的 Makefile 目标包括:
| Make 目标 | 描述 |
|---|---|
| all | 默认目标。构建服务器。 |
| shell | 构建客户端库,并启动一个加载了库的 Erlang shell。 |
| run-broker | 构建服务器并启动一个带有交互式 Erlang shell 的实例。默认情况下,数据(包括节点的目录)将放在 节点名称也可以通过设置 有关其他有用的变量,请参阅配置指南。 |
| clean | 删除临时构建产品。 |
| distclean | 删除所有构建产品,包括已下载的依赖项。 |
| tests | 运行多个服务器测试套件。这非常耗费资源,并且可能需要几个小时。许多节点和集群将被各种测试套件启动、修改和销毁。 |
构建软件包
实际上,除非可以生成易于部署的软件包(例如,通用的二进制构建或 Debian 包),否则从源代码构建 RabbitMQ 服务器的用处有限。
与 RabbitMQ 服务器打包相关的所有内容都在主 RabbitMQ 存储库中。
有许多顶级的打包 Make 目标可用,每个目标对应一种软件包类型(或软件包系列,如 RPM)。
make package-generic-unixmake package-debmake package-rpmmake package-rpm-susemake package-windows