Linux 系统下安装 Erlang 详细指南?Linux怎么安装Erlang?Linux如何安装Erlang?

06-08 3996阅读

Erlang作为一门专为高并发和分布式系统设计的函数式编程语言,凭借其轻量级进程模型和成熟的OTP框架,已成为构建电信级高可用系统的首选技术,全球知名应用如WhatsApp(支撑数十亿用户消息收发)、RabbitMQ(企业级消息队列)以及金融领域的高频交易系统都基于Erlang实现,本文将深入讲解Linux环境下Erlang的完整安装方案,涵盖Ubuntu、CentOS等主流发行版,并提供生产环境优化建议。

系统环境准备

系统更新建议

在安装前建议先执行系统更新,以确保软件依赖的兼容性:

Linux 系统下安装 Erlang 详细指南?Linux怎么安装Erlang?Linux如何安装Erlang?

# Ubuntu/Debian系
sudo apt update && sudo apt full-upgrade -y
# RHEL系(CentOS/Rocky Linux)
sudo yum update -y --skip-broken
# Fedora新版
sudo dnf upgrade --refresh -y

最佳实践:对于生产服务器,建议在非业务高峰期执行更新,并提前做好快照备份。

开发依赖安装

Erlang编译需要完整的开发工具链支持:

Ubuntu/Debian系统

sudo apt install -y build-essential autoconf m4 libncurses-dev \
    libssl-dev libwxgtk-webview3.2-dev libgl1-mesa-dev \
    libsqlite3-dev unixodbc-dev libjpeg-dev libpng-dev

RHEL/CentOS系统

sudo yum groupinstall -y "Development Tools" && \
sudo yum install -y epel-release && \
sudo yum install -y openssl-devel ncurses-devel wxGTK3-devel \
    unixODBC-devel libxslt fop

技术提示:对于需要系统集成的环境,建议额外安装:

# Ubuntu
sudo apt install -y libsystemd-dev
# CentOS
sudo yum install -y systemd-devel

多种安装方案详解

官方仓库安装(推荐生产环境)

Ubuntu/Debian

# 添加ESL官方仓库
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i erlang-solutions_*.deb
sudo apt update
# 安装长期支持版本
sudo apt install -y esl-erlang erlang-manpages erlang-doc

RHEL系

# 添加仓库
sudo rpm -Uvh https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
# 查看可用版本
yum list available esl-erlang*
# 安装特定版本(示例)
sudo yum install -y esl-erlang-26.0

源码编译安装(适合定制需求)

# 下载OTP 26.0源码包
wget https://github.com/erlang/otp/releases/download/OTP-26.0/otp_src_26.0.tar.gz
tar xzf otp_src_*.tar.gz && cd otp_src-26.0
# 配置编译参数(根据需求调整)
./configure --prefix=/opt/erlang-26.0 \
            --enable-threads \
            --enable-smp-support \
            --enable-kernel-poll \
            --with-ssl=$(openssl version -d | awk '{print $2}' | tr -d '"') \
            --with-javac \
            --enable-dynamic-ssl-lib
# 使用多核编译(提升速度)
make -j$(($(nproc)+1)) && sudo make install

关键编译参数解析

Linux 系统下安装 Erlang 详细指南?Linux怎么安装Erlang?Linux如何安装Erlang?

  • --enable-kernel-poll:启用Linux内核事件通知机制,提升I/O性能30%+
  • --with-dynamic-trace=dtrace:支持动态追踪(需系统安装SystemTap)
  • --disable-hipe:关闭本地代码编译(牺牲部分性能换取更好兼容性)

使用asdf版本管理(开发推荐)

# 安装asdf核心
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.13.1
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
source ~/.bashrc
# 添加Erlang插件
asdf plugin-add erlang https://github.com/asdf-vm/asdf-erlang.git
# 安装依赖(Ubuntu示例)
sudo apt install -y autoconf curl dpkg-dev build-essential
# 安装多个版本
asdf install erlang 25.3.2
asdf install erlang 26.0
# 项目级版本控制
echo "erlang 26.0" > .tool-versions

优势对比: | 方案 | 适用场景 | 维护难度 | 灵活性 | |------------|--------------|---------|-------| | 官方仓库 | 生产环境 | ★★☆☆☆ | ★★☆☆☆ | | 源码编译 | 定制需求 | ★★★★☆ | ★★★★★ | | asdf管理 | 多版本开发 | ★★☆☆☆ | ★★★★☆ |

安装验证与调优

环境验证

# 验证安装版本
erl -eval 'io:format("Erlang/OTP ~s~n", [erlang:system_info(otp_release)]), halt().' -noshell
# 检查关键功能
erl -noshell -eval 'io:format("Crypto: ~p~nSSL: ~p~n", 
                  [code:which(crypto), code:which(ssl)]), halt().'

系统级配置

建议在/etc/profile.d/erlang.sh创建全局配置:

export ERLANG_HOME=/opt/erlang-26.0
export PATH="${ERLANG_HOME}/bin:${PATH}"
export MANPATH="${ERLANG_HOME}/man:${MANPATH}"
export KERL_CONFIGURE_OPTIONS="--with-ssl=/usr/local/openssl"

生产环境优化

内存管理

vm.args中配置:

+P 5000000                # 最大进程数
+Q 262144                 | # 端口数上限
+SDio 10                  # 异步线程池

网络优化

# /etc/sysctl.conf 追加
net.ipv4.tcp_max_syn_backlog = 4096
net.core.somaxconn = 4096

监控配置

建议安装observer工具:

Linux 系统下安装 Erlang 详细指南?Linux怎么安装Erlang?Linux如何安装Erlang?

erl -eval 'observer:start().'

安全实践

  1. 最小权限原则:使用专用用户运行Erlang节点
    sudo useradd -r -s /bin/false erlang
  2. 网络隔离:配置防火墙规则限制EPMD端口(4369)
  3. 加密通信:强制使用TLS1.3加密节点间通信

扩展学习


版本说明:本文档基于Erlang/OTP 26.0编写,最后更新于2023年10月,对于ARM架构服务器,需要额外添加--enable-aot编译参数以获得最佳性能。

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

相关阅读

目录[+]

取消
微信二维码
微信二维码
支付宝二维码