Coder Social home page Coder Social logo

rabbitmq / erlang-rpm Goto Github PK

View Code? Open in Web Editor NEW
540.0 41.0 118.0 760 KB

Latest Erlang/OTP releases packaged as a zero dependency RPM, just enough for running RabbitMQ

Home Page: https://rabbitmq.com/install-rpm.html

License: Other

Makefile 41.20% Shell 58.80%
erlang rpm rabbitmq

erlang-rpm's Introduction

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 8.4 or later
  • CentOS Stream 8
  • CentOS Stream 9
  • Rocky Linux 8.5 or later
  • Fedora 36 or later
  • Amazon Linux 2023
  • VMware PhotonOS 5
  • Oracle Linux 9
  • Alma Linux 9

CentOS 7 and derivatives

Team RabbitMQ stopped supporting CentOS 7 in May 2022.

Erlang 26.2.5 and 25.3.2.9 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 26.x and 25.x. Both x86-64 and aarch64 versions can be build in containers.

First RabbitMQ release series with Erlang 26 support is 3.12.

RabbitMQ Version Compatibility

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

Erlang 26

First RabbitMQ release series with Erlang 26 support is 3.12.

Erlang 25

Erlang 25 is supported by RabbitMQ starting with 3.10.0.

Erlang 25 depends on OpenSSL 1.1, which is not available on CentOS 7. Therefore Erlang 25 packages are only produced for modern Fedora, Rocky Linux, CentOS Stream, and Amazon Linux 2023.

Implicit OpenSSL/libcrypto Dependency

This package intentionally does not include OpenSSL/libcrypto. It must be provisioned separately. Recent Erlang versions require a modern OpenSSL version, currently this means 1.1.x or later.

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:

## primary RabbitMQ signing key
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:

## primary RabbitMQ signing key
rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
## modern Erlang repository
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 25 x86-64 and aarch64 releases can be provisioned on RHEL 9, CentOS Stream 9, Amazon Linux 2023, and modern Fedora using a direct download:

# This is just an example that uses an aarch64 package for Amazon Linux 2023
cd /tmp/
curl -sfL -O https://github.com/rabbitmq/erlang-rpm/releases/download/v25.3.2.5/erlang-25.3.2.5-1.amzn2023.aarch64.rpm
sudo dnf install -y ./erlang-25.3.2.5-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):

# In /etc/yum.repos.d/modern_erlang.repo

##
## Zero dependency Erlang RPM
##

[modern-erlang]
name=modern-erlang-el8
# uses a Cloudsmith mirror @ yum.novemberain.com in addition to its Cloudsmith upstream.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quota
baseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
        https://yum2.novemberain.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[modern-erlang-noarch]
name=modern-erlang-el8-noarch
# uses a Cloudsmith mirror @ yum.novemberain.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/noarch
        https://yum2.novemberain.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[modern-erlang-source]
name=modern-erlang-el8-source
# uses a Cloudsmith mirror @ yum.novemberain.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
        https://yum2.novemberain.com/erlang/el/8/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1

To install the package:

dnf update -y
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):

# In /etc/yum.repos.d/modern_erlang.repo
[modern-erlang]
name=modern-erlang-el8
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# Unlike Cloudsmith, it does not have traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/$basearch
        https://yum1.novemberain.com/erlang/el/8/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[modern-erlang-noarch]
name=modern-erlang-el8-noarch
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/noarch
        https://yum2.novemberain.com/erlang/el/8/noarch
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1
type=rpm-md

[modern-erlang-source]
name=modern-erlang-el8-source
# uses a Cloudsmith mirror @ yum1.novemberain.com.
# Unlike Cloudsmith, the mirror is very unlikely to hit its traffic quotas
baseurl=https://yum1.novemberain.com/erlang/el/8/SRPMS
        https://yum2.novemberain.com/erlang/el/8/SRPMS
repo_gpgcheck=1
enabled=1
gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key
       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
gpgcheck=1
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
pkg_gpgcheck=1
autorefresh=1

To install the package:

dnf update -y
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
  • snmp
  • 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.

cd docker

#
# Use build-image-and-rpm.sh to execute all scripts:
# build an image and build the RPM in it
#
# Supported distribution aliases:
#  * stream9 for CentOS Stream 9
#  * stream8 for CentOS Stream 8
#  * al2023 for Amazon Linux 2023
#  * f38 for Fedora 38
#
./build-image-and-rpm.sh stream9 --no-cache

#
# To only build an image with the necessary toolchain,
# use ./build-docker-image.sh.
#
# Supported distribution aliases:
#  * stream9 for CentOS Stream 9
#  * stream8 for CentOS Stream 8
#  * al2023 for Amazon Linux 2023
#  * f38 for Fedora 38
 ./build-docker-image.sh stream9 --no-cache

#
# To only build the RPM using an already built and available image,
# use ./build-rpm-in-docker.sh
#
# Supported distribution aliases:
#  * stream9 for CentOS Stream 9
#  * stream8 for CentOS Stream 8
#  * al2023 for Amazon Linux 2023
#  * f38 for Fedora 38
#
./build-rpm-in-docker.sh stream9

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.

# Note: this will use sudo to drive `dnf update -y` and install a few packages
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 and License

Copyright VMware, Inc and its affiliates, 2011-2023. All Rights Reserved.

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

erlang-rpm's People

Contributors

acogoluegnes avatar dumbbell avatar gilacost avatar gsantomaggio avatar hrw avatar michaelklishin avatar mkuratczyk avatar ncaio avatar shanemcd avatar spring-operator avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

erlang-rpm's Issues

GPG signing key when consuming from PackageCloud

Your documentation for PackageCloud says that the RPM's are supported to be signed by the PackageCloud key at: https://packagecloud.io/rabbitmq/erlang/gpgkey

However, I just attempted to installed erlang-22.1.5-1.el7 and found that it's actually signed with your "release signing key" here: https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc

This was easy enough to fix by putting the right GPG key on my machine, but you should fix the documentation to reflect the correct information.

Create stable-18.x branch

The repository has to handle two versions, it is useful to create one branch for 18.x versions and leave master for the last version.

We can also remove the directory versions.

Requires erlang >= 19.3 when installing RabbitMQ on Red Hat

I'm trying to install RabbitMQ (v3.7.4) on Red Hat (workstation v7 64-bit) using the zero-dependency RPM here. I've installed the OTP-20.3 version by following the instructions in your README and set my path to include its bin directory, but when I then try to install Rabbit MQ, I get the following error output:

$ sudo yum install rabbitmq-server-3.7.4-1.el7.noarch.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
              : manager
Examining rabbitmq-server-3.7.4-1.el7.noarch.rpm: rabbitmq-server-3.7.4-1.el7.noarch
Marking rabbitmq-server-3.7.4-1.el7.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.7.4-1.el7 will be installed
--> Processing Dependency: erlang >= 19.3 for package: rabbitmq-server-3.7.4-1.el7.noarch
--> Processing Dependency: socat for package: rabbitmq-server-3.7.4-1.el7.noarch
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.7.4-1.el7 will be installed
--> Processing Dependency: erlang >= 19.3 for package: rabbitmq-server-3.7.4-1.el7.noarch
---> Package socat.x86_64 0:1.7.3.2-2.el7 will be installed
--> Finished Dependency Resolution
Error: Package: rabbitmq-server-3.7.4-1.el7.noarch (/rabbitmq-server-3.7.4-1.el7.noarch)
           Requires: erlang >= 19.3
**********************************************************************
yum can be configured to try to resolve such errors by temporarily enabling
disabled repos and searching for missing dependencies.
To enable this functionality please set 'notify_only=0' in /etc/yum/pluginconf.d/search-disabled-repos.conf
**********************************************************************

Error: Package: rabbitmq-server-3.7.4-1.el7.noarch (/rabbitmq-server-3.7.4-1.el7.noarch)
           Requires: erlang >= 19.3
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Somehow it doesn't recognize that I've installed v20.3, which should satisfy the requirement of having erlang >= 19.3. Any idea what's going wrong?

RabbitMQ 3.6.10 fails to load asn1

For those landing here from Google/Baidu/etc

asn1 is an Erlang module for ASN.1 encoding. It must be available in the Erlang installation for TLS to work.

This package includes asn1 but OpenSSL is an implicit dependency. In other words, it is operator's responsibility to make sure a compatible OpenSSL version is installed in the system.

Original issue

This is my first time attempt to use this package, so this issue could be user error...

On CentOS 7 (1611), if I run the following commands:

> yum install https://github.com/rabbitmq/erlang-rpm/releases/download/v19.3.6.2/erlang-19.3.6.2-1.el7.centos.x86_64.rpm
> yum install http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm
> systemctl enable rabbitmq-server.service
> systemctl start rabbitmq-server.service

I get the following error:
Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.

Running 'journalctl -xe' returns:

Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: BOOT FAILED
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: ===========
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: Error description:
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {error,{"no such file or directory","asn1.app"}}
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: Log files (may contain more information):
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: /var/log/rabbitmq/[email protected]
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: /var/log/rabbitmq/[email protected]
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: Stack trace:
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: [{app_utils,load_applications,2,[{file,"src/app_utils.erl"},{line,100
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {app_utils,load_applications,1,[{file,"src/app_utils.erl"},{line,36}]
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {rabbit,start_apps,1,[{file,"src/rabbit.erl"},{line,472}]},
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {rabbit,broker_start,0,[{file,"src/rabbit.erl"},{line,295}]},
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,417}]},
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {init,start_em,1,[]},
Aug 01 19:54:07 centos7-dev rabbitmq-server[1419]: {init,do_boot,3,[]}]
Aug 01 19:54:08 centos7-dev rabbitmq-server[1419]: {"init terminating in do_boot",{error,{"no such file or directory","a
Aug 01 19:54:08 centos7-dev rabbitmq-server[1419]: init terminating in do_boot ()
Aug 01 19:54:08 centos7-dev rabbitmq-server[1419]: Crash dump is being written to: erl_crash.dump...done
Aug 01 19:54:08 centos7-dev systemd[1]: rabbitmq-server.service: main process exited, code=exited, status=1/FAILURE
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: Stopping and halting node rabbit@localhost
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: Error: unable to connect to node rabbit@localhost: nodedown
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: DIAGNOSTICS
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: ===========
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: attempted to contact: [rabbit@localhost]
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: rabbit@localhost:
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: * connected to epmd (port 4369) on localhost
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: * epmd reports: node 'rabbit' not running at all
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: other nodes on localhost: ['rabbitmq-cli-22']
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: * suggestion: start the node
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: current node details:
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: - node name: 'rabbitmq-cli-22@centos7-dev'
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: - home dir: .
Aug 01 19:54:09 centos7-dev rabbitmqctl[1712]: - cookie hash: nnnK8anSi9mGlIL2zCluRg==
Aug 01 19:54:09 centos7-dev systemd[1]: Failed to start RabbitMQ broker.

Automatically tag and create GitHub releases

Our pipeline currently produces two RPM packages and publishes them to services such as PackageCloud and Cloudsmith. However, a manually triggered separate job is what creates the tag and GitHub release. Now that we have over a year of
evidence that our patches do not go stale very often and for almost all releases, patching succeeds, we should fully automate this process.

This depends on addressing #92 one way or another.

Docker Image Creation Fail

Hi,

On using the Docker method for installation, the image creation is giving the following dependency error:


Processing Conflict: libselinux-2.5-11.el7.x86_64 conflicts systemd < 219-20
--> Finished Dependency Resolution
You could try using --skip-broken to work around the problem
Error: libselinux conflicts with fakesystemd-1-17.el7.centos.noarch
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
fakesystemd-1-17.el7.centos.noarch has installed conflicts systemd: fakesystemd-1-17.el7.centos.noarch
The command '/bin/sh -c yum -y update && yum clean all' returned a non-zero code: 1

LDAP authentication is not working after erlang upgrade

I'm using rabbit_auth_backend_ldap plugin to authenticate in LDAP. After upgrading erlang to erlang-18.3.4-5 or 19.2.3-1 I cannot login to management console using domain user and get following error

=ERROR REPORT==== 1-Mar-2017::11:17:33 ===
webmachine error: path="/api/whoami"
"Unauthorized"

=INFO REPORT==== 2-Mar-2017::10:43:08 ===
LDAP CHECK: login for _username_

=INFO REPORT==== 2-Mar-2017::10:43:08 ===
    LDAP connect error: {error,"connect failed"}

=INFO REPORT==== 2-Mar-2017::10:43:08 ===
    LDAP connect error: {error,"connect failed"}

=INFO REPORT==== 2-Mar-2017::10:43:08 ===
LDAP DECISION: login for _username_: {error,"connect failed"}

=WARNING REPORT==== 2-Mar-2017::10:43:08 ===
HTTP access denied: rabbit_auth_backend_ldap failed authenticating _username_: "connect failed"

It's working correctly for erlang-18.3-1 so I had to downgrade erlang.
My Rabbit is connecting to LDAP servers over SSL.

Erlang RPMs are not signed

I'm trying to install Rabbitmq and Erlang from the Package Cloud repos (https://packagecloud.io/rabbitmq/erlang/install#rpm). The erlang package cannot be installed unless I set "gpgcheck=0" in rabbitmq_erlang.repo because the RPM has not been signed.

The same is not true for the Rabbitmq RPM from Package Cloud; this has been signed and can be verified with the Rabbitmq release key (https://www.rabbitmq.com/rabbitmq-release-signing-key.asc).

For example, given I have imported the Rabbitmq release key (rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc) and I have the following /etc/yum.repos.d/rabbitmq_erlang.repo file contents:

[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/6/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-packagecloud
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

Then I expect that yum install -y erlang should succeed but instead I get the following error:

Package erlang-19.2.1-1.el6.x86_64.rpm is not signed

Apologies if this is posted in the wrong place. I couldn't see a way to report issues directly to the "rabbitmq/erlang" Package Cloud repo owners.

BTW, I prefer to use the Package Cloud repo because the Erlang Solutions one brings in too many unnecessary dependencies.

Installation fails because libcrypto/openssl 1.0.1 is not available

I'm installed erlang-19.2.0-1.el6.x86_64.rpm on Red Hat Enterprise Linux Server release 6.3,error is

error: Failed dependencies:
libcrypto.so.10(OPENSSL_1.0.1)(64bit) is needed by erlang-19.2.0-1.el6.x86_64
libcrypto.so.10(OPENSSL_1.0.1_EC)(64bit) is needed by erlang-19.2.0-1.el6.x86_64
libcrypto.so.10(libcrypto.so.10)(64bit) is needed by erlang-19.2.0-1.el6.x86_64

Error while trying to install 19.1 on CentOS 7

25347 blocks

  • /usr/lib/rpm/check-buildroot
  • /usr/lib/rpm/redhat/brp-compress
  • /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip
  • /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1
  • /usr/lib/rpm/redhat/brp-python-hardlink
  • /usr/lib/rpm/redhat/brp-java-repack-jars
    Processing files: erlang-19.1-1.el7.centos.x86_64
    error: Directory not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/crypto-/
    error: Directory not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-
    /
    error: File not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-/ebin
    error: File not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-
    /src
    Executing(%doc): /bin/sh -e /root/Desktop/erlang-rpm-master/tmp/rpm-tmp.0HmeOo
  • umask 022
  • cd /root/Desktop/erlang-rpm-master/BUILD
  • cd otp-OTP-19.1
  • DOCDIR=/root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/share/doc/erlang-19.1
  • export DOCDIR
  • /usr/bin/mkdir -p /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/share/doc/erlang-19.1
  • cp -pr Erlang_ASL2_LICENSE.txt /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/share/doc/erlang-19.1
  • exit 0

RPM build errors:
bogus date in %changelog: Thu Oct 13 2015 Michael Klishin [email protected] - 18.1
Directory not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/crypto-/
Directory not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-
/
File not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-/ebin
File not found by glob: /root/Desktop/erlang-rpm-master/BUILDROOT/erlang-19.1-1.el7.centos.x86_64/usr/lib64/erlang/lib/ssl-
/src
make: *** [erlang] Error 1

Getting ERROR "403 forbidden" while downloading Erlang packages from Bintray

Update from mid-2021

This was originally filed in 2017 but it's worth mentioning that Bintray has been permanently shut down in May 2021. See the README of this package to find out how the package is distributed these days.

Original issue

Getting ERROR "403 forbidden" while downloading erlang from bintray for rabbitmq-server-3.6.10-1..el6 for centos6.

Below is the complete logs:
https://dl.bintray.com/rabbitmq/rpm/erlang/19/el/6/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 403 Forbidden"
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: rabbitmq-erlang. Please verify its path and try again.

AArch64 packages

While RabbitMQ is architecture agnostic Erlang is not. So newer version of RabbitMQ are not usable on !x86 architectures.

Please provide AArch64 packages so we can deploy OpenStack on our servers with something fresher than 3.7.10 (last ver working with CentOS 7 Erlang).

error: Failed dependencies

rpm -Uvh erlang-23.3.1-1.el7.x86_64.rpm
warning: erlang-23.3.1-1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
erlang(x86-64) = R16B-03.18.el7 is needed by (installed) erlang-examples-R16B-03.18.el7.x86_64

zero dependencies?

Client TLS sockets fail with a handshake failure due to missing EC curves

This might be coming from the recent changes of OTP but I cannot get HTTPS to work on CentOS 7.

RPM: https://github.com/rabbitmq/erlang-rpm/releases/download/v21.2.1/erlang-21.2.1-1.el7.centos.x86_64.rpm

CentOS:
https://aws.amazon.com/marketplace/pp/B00O7WM7QW

CentOS 7 18.05

[centos@ip-172-172-3-49 helix]$ env MIX_ENV=prod mix release
Could not find Hex, which is needed to build dependency :plug_cowboy
Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] Y

18:12:32.462 [info]  ['TLS', 32, 'client', 58, 32, 73, 110, 32, 115, 116, 97, 116, 101, 32, 'hello', 32, 'received SERVER ALERT: Fatal - Handshake Failure', 10]
** (Mix) httpc request failed with: {:failed_connect, [{:to_address, {'repo.hex.pm', 443}}, {:inet6, [:inet6], :enetunreach}, {:inet, [:inet], {:tls_alert, 'handshake failure'}}]}

Could not install Hex because Mix could not download metadata at https://repo.hex.pm/installs/hex-1.x.csv.

Is there a workaround to get this working or I need to fix the source code?

Thanks.

Some releases are missing certain RPMs

Hey everyone,

I just noticed that there are quite a few packages missing on the releases page. Some examples:

I downloaded them from packagecloud for now, so the RPMs are there, they just didn't get pushed to GitHub. It would be great if someone could fix the pipeline.

gen_tcp:connect returns badarg with valid arguments

Command to reproduce:

erl -noshell -eval ge'n_tcp:connect({192,168,1,5}, 5140, [{active,false}, {ip ,{127,0,0,1}}], 1000).' -s init stop

Output on CentOS 7 with the package installed from here:

[root@localhost ~]# erl -noshell -eval 'io:format("~p~n", [gen_tcp:connect({192,168,1,5}, 5140, [{active,false}, {ip ,{127,0,0,1}}], 1000)]).' -s init stop
{"init terminating in do_boot",badarg}
init terminating in do_boot (badarg)

Crash dump is being written to: erl_crash.dump...done

Output on my Arch Linux workstation, with kerl built versions of 21.2.2 and 21.2.4:

$ erl -noshell -eval 'io:format("~p~n", [gen_tcp:connect({192,168,1,5}, 5140, [{active,false}, {ip ,{127,0,0,1}}], 1000)]).' -s init stop
{error,econnrefused}

Erlang/OTP 22 cannot install rabbitmq-server-3.7.17-1.el7.noarch.rpm

Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V10.4 (abort with ^G)
1>

[root@li1861-201 opt]# rpm -ivh rabbitmq-server-3.7.17-1.el7.noarch.rpm
warning: rabbitmq-server-3.7.17-1.el7.noarch.rpm: Header V4 RSA/SHA256 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
erlang >= 20.3 is needed by rabbitmq-server-3.7.17-1.el7.noarch

CentOS 7.3 does not provide OpenSSL 1.0.2 or later

I am trying to install erlang-21.1.1-1.el7.centos.x86_64.rpm on centos7.3 but I met below errors

warning: erlang-21.1.1-1.el7.centos.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
error: Failed dependencies:
libcrypto.so.10(OPENSSL_1.0.2)(64bit) is needed by erlang-21.1.1-1.el7.centos.x86_64

And I found opensl1.0.2 supported on centos7.6 but centos7.3. Do we have workround for centos7.3 with openssl version is 1.0.1? Thanks.

Error: Package: rabbitmq-server-3.7.9-1.el7.noarch (/rabbitmq-server-3.7.9-1.el7.noarch) Requires: erlang >= 19.3

Hi!
yum localinstall rabbitmq-server-3.7.9-1.el7.noarch.rpm
...
Error: Package: rabbitmq-server-3.7.9-1.el7.noarch (/rabbitmq-server-3.7.9-1.el7.noarch)
Requires: erlan
Available: erlang-R16B-03.18.el7.x86_64 (X5_Retail_Group_EPEL_7_x86_64_epel_7_x86_64)
erlang = R16B-03.18.el7
...

but im have not installed erlang on my server now

[root@oleg]# yum list installed | grep erlang
[root@oleg]# erl
bash: /bin/erl: No such file or directory
[root@oleg]# cat /usr/lib/erlang/releases/RELEASES
cat: /usr/lib/erlang/releases/RELEASES: No such file or directory
[root@oleg]#

im install esl-erlang_21.1-1centos7_amd64.rpm, but error saved =(

0_o what is it??

And how i can fix it?

asn1.app not found on CentOS 7.4

Dear

I installed rabbitmq-server 3.7.5 on CentOS 7.4
I used the erlang zero dependencies 20.1.7-1.el7.centos for this rbmq.

However, when I start the service, I got this error:

'{"init terminating in do_boot",{error,{"no such file or directory","asn1.app"}}}'

Do you know how to fix this error?

Best
Dat

Does this project support mips64el?

I am trying to build erlang-rpm on mips64 architechture. And I enconter the problem as follows when I run make

configure: error: in `/root/erlang-rpm/BUILD/otp-OTP-22.3.4.4/erts':
configure: error: --enable-systemd was given, but test for systemd failed
See `config.log' for more details
ERROR: /root/erlang-rpm/BUILD/otp-OTP-22.3.4.4/erts/configure failed!
./configure: line 343: kill: (-29167) - No such process
error: Bad exit status from /root/erlang-rpm/tmp/rpm-tmp.UlnrrP (%build)


RPM build errors:
    Bad exit status from /root/erlang-rpm/tmp/rpm-tmp.UlnrrP (%build)
Makefile:50: recipe for target 'erlang' failed
make: *** [erlang] Error 1

erlang OTP version: 22.3.44
os release:

NAME=Fedora
VERSION="21 (Twenty One)"
ID=fedora
VERSION_ID=21
PRETTY_NAME="Fedora 21 (Twenty One)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:21"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=21
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=21

Cloudflare blocking rabbitmq-release-signing-key.asc from DigitalOcean

When I try to access https://www.rabbitmq.com/rabbitmq-release-signing-key.asc from a newly-provisioned DigitalOcean VM, Cloudflare appears to be serving a CAPTCHA to Yum/Curl instead of giving out the signing key.

Not sure if this is the right place to post this either. If it's not, please point me in the right direction.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.