项目作者: rabbitmq

项目描述 :
Latest Erlang/OTP releases packaged as a zero dependency RPM, just enough for running RabbitMQ
高级语言: Shell
项目地址: git://github.com/rabbitmq/erlang-rpm.git
创建时间: 2015-12-09T08:49:56Z
项目社区:https://github.com/rabbitmq/erlang-rpm

开源协议:Other

下载


Zero-dependency Erlang RPM for RabbitMQ

This is a (virtually) zero dependency Erlang RPM package that provides just enough to run RabbitMQ.
It may or may not be suitable for running other Erlang-based software or 3rd party RabbitMQ
plugins.

x86-64 binaries are provided with every release, while aarch64 (ARM64)
binaries will be limited to new major and minor release, and patches when resources allow.

Binary packages can be produced on any host that can run Docker, including
aarch64 hosts. See the Building from Source section below.

Supported RPM-based Distributions

Binary builds of this package target modern RPM-based distributions:

RHEL and CentOS Stream 8 Distribution Family

CentOS Stream 8 has reached end of life in May 2024. The CentOS 8 versions
of these packages are produced on Rocky Linux 8.10+ from July 2024 and onwards.

CentOS 7 has Reached End-of-Life

Team RabbitMQ stopped supporting CentOS 7 in May 2022.

Erlang 28.0.2, 27.3.4.2, 26.2.5.14 and 25.3.2.21
include one-off CentOS 7 packages statically linked against OpenSSL 1.1.x.

Regular CentOS 7 and Amazon Linux 2 builds were produced up to Erlang 23.3.4.18.
They are dynamically linked against OpenSSL 1.0.

Packages for Debian-based Distributions

Team RabbitMQ also packages recent Erlang/OTP releases for Debian
and a modern Erlang PPA for Ubuntu.

Provided Erlang/OTP Versions

The package targets Erlang/OTP 28.x, 27.x and 26.x. Both x86-64 and aarch64 versions can be built in containers.

RabbitMQ Version Compatibility

See Supported Erlang Versions in RabbitMQ documentation
for an up-to-date compatibility matrix.

OpenSSL/libcrypto Version Support

This package intentionally does not include OpenSSL/libcrypto. It must be provisioned separately.
Recent Erlang versions require a modern OpenSSL version.

For the el9 variant (modern Fedora, RHEL 9, CentOS Stream 9, Rocky Linux 9.x, Alma Linux 9.x, and so on) this means OpenSSL 3.x.
For the el8 variant (Rocky Linux 8.x, Alma Linux 8.x) this means OpenSSL 1.1.x.

Release Artifacts

For direct RPM package downloads, see GitHub releases.

There is also a dnf repository that distributes x64_86 builds of this package.
See the repository setup instructions below.

Signing Keys

The package is signed using the standard RabbitMQ signing key:

  1. ## primary RabbitMQ signing key
  2. rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

To use the Cloudsmith dnf repository, a separate Cloudsmith repository key must be imported:

  1. ## primary RabbitMQ signing key
  2. rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
  3. ## modern Erlang repository
  4. rpm --import 'https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key'

Direct Downloads from GitHub

This package is distributed as a single RPM, which makes it convenient to
download and install using dnf install -y /path/to/erlang.rpm.

Erlang 26 x86-64 and aarch64 releases can be provisioned on RHEL 9, CentOS Stream 9, Amazon Linux 2023,
and modern Fedora using a direct download:

  1. # This is just an example that uses an aarch64 package for Amazon Linux 2023
  2. cd /tmp/
  3. curl -sfL -O https://github.com/rabbitmq/erlang-rpm/releases/download/v26.2.5.3/erlang-26.2.5.3-1.amzn2023.aarch64.rpm
  4. sudo dnf install -y ./erlang-26.2.5.3-1.amzn2023.aarch64.rpm

Latest Erlang Version from a Cloudsmith Mirror

This package is distributed via a dnf repository that mirrors from Cloudsmith.

The upstream Cloudsmith repository is subject to traffic quotas. When the quota is reached, package
installations will only be possible from the mirrors, so it is highly recommended that you use them.

The examples below use a mirror of the Cloudsmith repo. All packages in it are
signed with the same signing key.

Erlang 25 on RHEL 9, CentOS Stream 9, modern Fedora, Rocky Linux 9 (x86-64)

Erlang 25 x86-64 releases can be provisioned on RHEL 9, CentOS Stream 9, Rocky Linux, and modern Fedora
using a dnf (yum) repository (a Cloudsmith mirror):

  1. # In /etc/yum.repos.d/modern_erlang.repo
  2. ##
  3. ## Zero dependency Erlang RPM
  4. ##
  5. [modern-erlang]
  6. name=modern-erlang-el8
  7. # uses a Cloudsmith mirror @ yum.rabbitmq.com in addition to its Cloudsmith upstream.
  8. # Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quota
  9. baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
  10. https://yum2.rabbitmq.com/erlang/el/8/$basearch
  11. repo_gpgcheck=1
  12. enabled=1
  13. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  14. gpgcheck=1
  15. sslverify=1
  16. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  17. metadata_expire=300
  18. pkg_gpgcheck=1
  19. autorefresh=1
  20. type=rpm-md
  21. [modern-erlang-noarch]
  22. name=modern-erlang-el8-noarch
  23. # uses a Cloudsmith mirror @ yum.rabbitmq.com.
  24. # Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
  25. baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
  26. https://yum2.rabbitmq.com/erlang/el/8/noarch
  27. repo_gpgcheck=1
  28. enabled=1
  29. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  30. https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
  31. gpgcheck=1
  32. sslverify=1
  33. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  34. metadata_expire=300
  35. pkg_gpgcheck=1
  36. autorefresh=1
  37. type=rpm-md
  38. [modern-erlang-source]
  39. name=modern-erlang-el8-source
  40. # uses a Cloudsmith mirror @ yum.rabbitmq.com.
  41. # Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
  42. baseurl=https://yum1.rabbitmq.com/erlang/el/8/SRPMS
  43. https://yum2.rabbitmq.com/erlang/el/8/SRPMS
  44. repo_gpgcheck=1
  45. enabled=1
  46. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  47. https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
  48. gpgcheck=1
  49. sslverify=1
  50. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  51. metadata_expire=300
  52. pkg_gpgcheck=1
  53. autorefresh=1

To install the package:

  1. dnf update -y
  2. dnf install -y erlang

Erlang 25 on RHEL 8, CentOS Stream 8, Rocky Linux 8 (x86-64)

Erlang 25 x86-64 releases can be provisioned on RHEL 8, CentOS Stream 8, Rocky Linux, and modern Fedora
using a dnf (yum) repository (a Cloudsmith mirror):

  1. # In /etc/yum.repos.d/modern_erlang.repo
  2. [modern-erlang]
  3. name=modern-erlang-el8
  4. # uses a Cloudsmith mirror @ yum1.rabbitmq.com.
  5. # Unlike Cloudsmith, it does not have traffic quotas
  6. baseurl=https://yum1.rabbitmq.com/erlang/el/8/$basearch
  7. https://yum1.rabbitmq.com/erlang/el/8/$basearch
  8. repo_gpgcheck=1
  9. enabled=1
  10. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  11. gpgcheck=1
  12. sslverify=1
  13. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  14. metadata_expire=300
  15. pkg_gpgcheck=1
  16. autorefresh=1
  17. type=rpm-md
  18. [modern-erlang-noarch]
  19. name=modern-erlang-el8-noarch
  20. # uses a Cloudsmith mirror @ yum1.rabbitmq.com.
  21. # Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
  22. baseurl=https://yum1.rabbitmq.com/erlang/el/8/noarch
  23. https://yum2.rabbitmq.com/erlang/el/8/noarch
  24. repo_gpgcheck=1
  25. enabled=1
  26. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  27. https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
  28. gpgcheck=1
  29. sslverify=1
  30. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  31. metadata_expire=300
  32. pkg_gpgcheck=1
  33. autorefresh=1
  34. type=rpm-md
  35. [modern-erlang-source]
  36. name=modern-erlang-el8-source
  37. # uses a Cloudsmith mirror @ yum1.rabbitmq.com.
  38. # Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
  39. baseurl=https://yum1.rabbitmq.com/erlang/el/8/SRPMS
  40. https://yum2.rabbitmq.com/erlang/el/8/SRPMS
  41. repo_gpgcheck=1
  42. enabled=1
  43. gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
  44. https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
  45. gpgcheck=1
  46. sslverify=1
  47. sslcacert=/etc/pki/tls/certs/ca-bundle.crt
  48. metadata_expire=300
  49. pkg_gpgcheck=1
  50. autorefresh=1

To install the package:

  1. dnf update -y
  2. dnf install -y erlang

Available Erlang Applications

This package removes certain Erlang/OTP components that are non-essential
for running RabbitMQ but can greatly complicate installation process by bringing
in complicated dependencies.

Only the following OTP applications are provided:

  • asn1
  • compiler
  • crypto
  • eldap
  • erl_interface
  • erts
  • inets
  • kernel
  • mnesia
  • os_mon
  • public_key
  • reltool
  • runtime_tools
  • sasl
  • ssl
  • stdlib
  • syntax_tools
  • xmerl

Building from Source

With Docker

This repository provides scripts that can build an image with the rpmbuild toolchain
and build the package in it. They can be found under the ./docker directory.

The recommended host environment for these builds is Fedora 38+. Due to Docker-specific volume
sharing permissions intricacies, performing such builds on macOS will require
modifications to the build scripts.

  1. cd docker
  2. #
  3. # Use build-image-and-rpm.sh to execute all scripts:
  4. # build an image and build the RPM in it
  5. #
  6. # Supported distribution aliases:
  7. # * rocky9 for Rocky Linux 9.x
  8. # * alma9 for Alma Linux 9.x
  9. # * al2023 for Amazon Linux 2023
  10. # * f41 for Fedora 41
  11. # * stream9 for CentOS Stream 9
  12. # * stream8 for CentOS Stream 8
  13. ./build-image-and-rpm.sh rocky9 --no-cache
  14. #
  15. # To only build an image with the necessary toolchain,
  16. # use ./build-docker-image.sh.
  17. #
  18. # Supported distribution aliases:
  19. # * rocky9 for Rocky Linux 9.x
  20. # * alma9 for Alma Linux 9.x
  21. # * al2023 for Amazon Linux 2023
  22. # * f41 for Fedora 41
  23. # * stream9 for CentOS Stream 9
  24. # * stream8 for CentOS Stream 8
  25. ./build-docker-image.sh rocky9 --no-cache
  26. #
  27. # To only build the RPM using an already built and available image,
  28. # use ./build-rpm-in-docker.sh
  29. #
  30. # Supported distribution aliases:
  31. # * rocky9 for Rocky Linux 9.x
  32. # * alma9 for Alma Linux 9.x
  33. # * al2023 for Amazon Linux 2023
  34. # * f41 for Fedora 41
  35. # * stream9 for CentOS Stream 9
  36. # * stream8 for CentOS Stream 8
  37. ./build-rpm-in-docker.sh rocky9

Built packages can be found under docker/pkg-build-dir/RPMS/{architecture}/.

Without Docker

On an RPM-based distro (CentOS Stream 9, modern Fedora or Amazon Linux 2023), the package can
be built without containers.

  1. # Note: this will use sudo to drive `dnf update -y` and install a few packages
  2. make

and see RPMS/{architecture}/. Note that all artifacts created this way may be owned by root
due to the use of sudo.

Scope of Patching

The patches apply to the build system only (Makefile, Makefile.in and similar files).
No source code is patched.

Older Versions

The directory versions contains the patch files used for the older versions. Git repository
history and release archive can be useful as well.

Copyright Broadcom. “Broadcom” may refer to Broadcom, Inc or its affiliates, 2011-2025. All Rights Reserved.

Released under the Apache Software License 2.0,
same as Erlang/OTP.