
5分钟搞定RabbitMQ专属Erlang环境零依赖RPM包全攻略【免费下载链接】erlang-rpmLatest Erlang/OTP releases packaged as a zero dependency RPM, just enough for running RabbitMQ项目地址: https://gitcode.com/gh_mirrors/er/erlang-rpm你是否在为RabbitMQ部署Erlang环境而烦恼复杂的依赖关系、版本兼容性问题、臃肿的安装包……这些痛点让很多开发者望而却步。今天我要介绍的这个项目——erlang-rpm正是为解决这些问题而生✨这个开源项目专门为RabbitMQ打造了一个零依赖的Erlang RPM包只包含运行RabbitMQ所需的最小Erlang/OTP环境。这意味着你可以轻松地在各种RPM-based发行版上部署RabbitMQ而不用担心依赖地狱 为什么你需要这个项目想象一下这个场景你需要在生产服务器上部署RabbitMQ消息队列但系统自带的Erlang版本太旧手动编译又遇到各种依赖问题。这时候erlang-rpm就像你的救星传统Erlang安装 vs erlang-rpm对比特性传统Erlang安装erlang-rpm依赖复杂度高数十个依赖包零依赖安装时间长编译安装短直接安装RPM磁盘占用大完整Erlang环境小仅RabbitMQ必需组件版本管理复杂多版本冲突简单独立包适用场景通用Erlang开发RabbitMQ专用小贴士这个包专为RabbitMQ优化可能不适用于运行其他基于Erlang的软件或第三方RabbitMQ插件。 快速上手3种安装方式任你选方式一直接下载安装最简单如果你只需要在单台服务器上快速部署直接下载RPM包是最快的方式# 下载最新版本的Erlang RPM包 cd /tmp/ curl -sfL -O https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.3/erlang-26.2.5.3-1.amzn2023.aarch64.rpm # 安装包 sudo dnf install -y ./erlang-26.2.5.3-1.amzn2023.aarch64.rpm方式二配置YUM仓库推荐生产环境对于需要多台服务器部署或频繁更新的场景配置仓库是最佳选择# 在 /etc/yum.repos.d/modern_erlang.repo 中添加 [modern-erlang] namemodern-erlang-el8 baseurlhttps://yum1.rabbitmq.com/erlang/el/8/$basearch https://yum2.rabbitmq.com/erlang/el/8/$basearch repo_gpgcheck1 enabled1 gpgkeyhttps://github.com/rabbitmq/signing-keys/releases/download/3.0/cloudsmith.rabbitmq-erlang.E495BB49CC4BBE5B.key gpgcheck1配置完成后安装就变得超级简单# 更新仓库并安装 sudo dnf update -y sudo dnf install -y erlang方式三从源码构建高级用户如果你需要定制化构建或在不支持的平台上使用项目提供了完整的构建工具链# 克隆项目 git clone https://gitcode.com/gh_mirrors/er/erlang-rpm cd erlang-rpm/docker # 构建Rocky Linux 10的RPM包 ./build-image-and-rpm.sh rocky10 --no-cache构建好的包可以在docker/pkg-build-dir/RPMS/{architecture}/目录找到。 支持的发行版和架构这个项目覆盖了主流的RPM-based发行版支持的发行版RHEL 8.10 及更高版本CentOS Stream 9 和 10Fedora 41 或更高版本Rocky Linux 8.10、9.7、10.0Alma Linux 8.10、9.7、10.0Amazon Linux 2023VMware PhotonOS 5Oracle Linux 9 和 10支持的架构x86-64所有版本都提供aarch64ARM64新版本提供 包含的Erlang应用组件为了保持最小化这个包只包含了运行RabbitMQ必需的组件组件用途asn1ASN.1编译器和运行时compilerErlang编译器crypto加密函数ertsErlang运行时系统kernel核心系统服务mnesia分布式数据库sslSSL/TLS支持stdlib标准库完整的组件列表可以在项目的erlang.spec文件中找到包含了总共17个核心应用。 Docker容器化部署项目还提供了Docker构建支持让你可以在容器中构建RPM包# 查看docker目录下的构建脚本 ls docker/ # Dockerfile.template README.md common.sh # 使用预定义的构建脚本 ./build-image-and-rpm.sh rocky10 --no-cache支持的Docker构建目标rocky10- Rocky Linux 10.xrocky9- Rocky Linux 9.xalma10- Alma Linux 10.xalma9- Alma Linux 9.xal2023- Amazon Linux 2023f41- Fedora 41stream10- CentOS Stream 10stream9- CentOS Stream 9stream8- CentOS Stream 8️ 版本管理和兼容性Erlang版本支持项目主要支持最新的Erlang/OTP版本Erlang/OTP 28.xErlang/OTP 27.xErlang/OTP 26.xRabbitMQ兼容性不同的RabbitMQ版本需要特定的Erlang版本建议参考RabbitMQ官方文档的兼容性矩阵来选择合适的Erlang版本。历史版本管理项目的versions/目录保存了各个历史版本的补丁文件versions/ ├── 18.1/ │ ├── otp-0001-Do-not-format-man-pages-and-do-not-install-miscellan.patch │ └── ... ├── 18.2/ ├── 18.3/ └── ... (其他版本)每个版本目录包含特定的构建补丁确保不同Erlang版本都能正确构建。 最佳实践和注意事项1. OpenSSL依赖这个包不包含OpenSSL你需要单独提供。对于不同系统el9和el10变体需要 OpenSSL 3.xel8变体需要 OpenSSL 1.1.x2. 签名验证所有包都使用RabbitMQ的标准签名密钥签名安装前建议导入# 导入RabbitMQ签名密钥 rpm --import https://github.com/rabbitmq/signing-keys/releases/download/3.0/rabbitmq-release-signing-key.asc3. 构建环境要求推荐在Fedora 38上进行构建macOS用户需要调整构建脚本的权限设置确保有足够的磁盘空间至少2GB4. 容器构建技巧# 只构建Docker镜像不构建RPM ./build-docker-image.sh rocky10 --no-cache # 在已有镜像中构建RPM ./build-rpm-in-docker.sh rocky10 项目结构深度解析让我们看看项目的核心文件结构erlang-rpm/ ├── docker/ # Docker构建相关文件 │ ├── Dockerfile.template # Docker镜像模板 │ ├── README.md # Docker构建说明 │ └── common.sh # 共享脚本 ├── versions/ # 各版本补丁文件 │ ├── 18.1/ # Erlang 18.1版本补丁 │ ├── 18.2/ # Erlang 18.2版本补丁 │ └── ... # 其他版本 ├── erlang.spec # RPM规范文件 ├── Makefile # 构建脚本 └── *.patch # 通用补丁文件关键文件说明erlang.spec定义了RPM包的元数据和构建规则Makefile提供了本地构建的命令补丁文件修改构建系统不涉及源代码 常见问题解答Q: 这个包能用于其他Erlang应用吗A: 不建议。这个包专门为RabbitMQ优化移除了非必需组件可能缺少其他Erlang应用需要的库。Q: CentOS 7还支持吗A: 自2022年5月起项目已停止支持CentOS 7。最后支持的版本是Erlang 23.3.4.18。Q: 如何验证安装是否成功A: 安装后运行erl -version查看Erlang版本或尝试启动RabbitMQ服务。Q: 遇到构建错误怎么办A: 检查docker/README.md中的故障排除部分或查看项目的issue跟踪器。 生态整合erlang-rpm项目是RabbitMQ生态系统的重要组成部分。它与以下项目紧密集成RabbitMQ Server消息队列核心RabbitMQ管理插件Web管理界面RabbitMQ CLI工具命令行管理工具通过提供标准化的Erlang运行时erlang-rpm确保了RabbitMQ在不同Linux发行版上的一致性和稳定性。 学习资源想要深入了解这里有一些有用的资源官方文档README.md - 项目详细说明构建指南docker/README.md - Docker构建说明贡献指南CONTRIBUTING.md - 如何参与开发许可证信息Erlang_ASL2_LICENSE.txt - Apache 2.0许可证 开始使用吧现在你已经了解了erlang-rpm的所有关键信息。无论你是要在生产环境部署RabbitMQ还是需要为开发环境配置一致的Erlang运行时这个项目都能为你提供简单、可靠的解决方案。记住简单就是美。erlang-rpm通过零依赖设计和最小化打包让RabbitMQ部署变得前所未有的简单。试试看你会爱上这种清爽的安装体验最后提醒项目使用Apache 2.0许可证与Erlang/OTP保持相同的许可证确保商业使用的自由度。【免费下载链接】erlang-rpmLatest Erlang/OTP releases packaged as a zero dependency RPM, just enough for running RabbitMQ项目地址: https://gitcode.com/gh_mirrors/er/erlang-rpm创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考