安装 Erlang

https://www.rabbitmq.com/which-erlang.html

在安装 RabbitMQ 之前,您必须安装支持的Erlang/OTP 版本。标准的 Red Hat、Fedora、CentOS 存储库提供的 Erlang 版本通常已过时 ,无法用于运行最新的 RabbitMQ 版本。

在基于 RPM 的发行版上,现代 Erlang 有三个替代源:

  • RabbitMQ 团队生成了一个精简的包,仅提供运行 RabbitMQ 所需的那些组件。这是推荐的选项。
  • openSUSE 为 openSUSE Leap 生成Erlang 包
  • Erlang Solutions 生成的软件包通常是最新的并且涉及安装可能过多的依赖项列表
使用 RabbitMQ 团队提供的 零依赖 Erlang 安装包

可以从 GitHub 以及 Cloudsmith.ioPackageCloud 上的 Yum 存储库直接下载 RabbitMQ 的零依赖 Erlang RPM 包

这是一个(几乎)零依赖的 Erlang RPM 包,它提供的刚好足以运行 RabbitMQ。它可能适合也可能不适合运行其他基于 Erlang 的软件或第 3 方 RabbitMQ 插件。

也就是说,该包剥离了一些对于运行 RabbitMQ 不是必需的 Erlang 模块和依赖项。

支持的基于 RPM 的发行版

此软件包的二进制构建针对基于现代 RPM 的发行版:

  • RHEL 8.4 或更新的版本
  • CentOS Stream 8
  • CentOS Stream 9
  • Rocky Linux 8.5 或更新的版本
  • Fedora 34 或更新的版本
  • Amazon Linux 2023
  • Oracle Linux 9
  • Alma Linux 9
CentOS 7 及其衍生产品呢 ?

旧版本(直到Erlang 23.3.4.11)包括 CentOS 7 和基于 CentOS 7 的发行版(即 Amazon Linux 2)和 OpenSSL 1.0 的构建。

https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.3.4.11

yum install erlang-23.3.4.11-1.el7.x86_64.rpm

这个包有一个隐式的 OpenSSL/libcrypto 依赖(见下文)。从 Erlang 24 开始,最低要求的版本相当于 OpenSSL 是 1.1,仅由 Fedora、Rocky Linux、CentOS Stream 8 和 CentOS Stream 9 提供。

基于 Debian 的发行版呢 ?

RabbitMQ 团队还为 Debian 打包了最新的 Erlang/OTP 版本 ,为 Ubuntu 打包了一个现代的 Erlang PPA。

使用 openSUSE 提供的 Erlang 安装包

openSUSE 软件包存储库提供 Erlang,因此可以使用 Zypper 安装:

sudo zypper in erlang

标准存储库中可用的 Erlang 版本实际上将落后于最新版本。要使用具有最新功能的最新版本,要为 Erlang 添加 openSUSE Factory 存储库:

# 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

使用 Erlang Solutions 源进行安装

# 下载rpm包
wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

# 从erlang-solutions中更新该包,并将erlang_solutions.repo添加到/etc/yum.repos.d
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

# 安装
yum install erlang

----------------------------------------------------------------
该包还需依赖到epel源,请确保已有该源,若没有则可通过以下方式安装:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist # 查看安装是否成功

由于Erlang Solutions会进行不断地更新,且RabbitMQ对Erlang的版本有一定的要求(官方版本要求对应表)。所以官方建议我们禁止Erlang版本的自动更新。方法如下:参考如何禁止某个软件包的自动升级

# 安装yum-versionlock
yum install yum-plugin-versionlock

# 禁止Erlang自动更新
yum versionlock erlang

注:默认情况下,yum似乎是不会自动更新软件的,除非安装了yum-cron这个软件或者自己写了某些自动更新脚本。如果是前者的话,我们也可以 cd /etc/yum 目录下,将yum-cron.conf中的download_updates = yes 改为 no。

作者:Jeebiz  创建时间:2023-04-10 12:10
最后编辑:Jeebiz  更新时间:2024-09-23 10:03