需手动安装erlang/otp:一、源码编译(推荐生产环境),含依赖安装、下载解压、配置(指定路径/禁用java/启用smp等)、编译安装、环境变量配置及验证;二、kerl多版本管理;三、apt仓库安装(版本滞后);四、离线二进制包部署;五、常见错误处理(如ncurses、openssl缺失等)。

如果您在麒麟OS上部署Elixir、RabbitMQ或其它Erlang生态应用,但系统缺少Erlang运行时环境,则需手动安装Erlang/OTP。以下是适用于麒麟OS的多种Erlang安装方法:
一、源码编译安装(推荐用于生产环境)
该方法可精确控制Erlang版本、编译选项及安装路径,适配麒麟OS ARM/x86_64架构,并支持启用SMP、线程、KPoll等关键特性。
1、安装必要编译依赖:sudo apt install -y build-essential autoconf m4 libncurses5-dev libssh-dev libssl-dev libxml2-dev libwxgtk3.0-gtk3-dev libgl1-mesa-dev libglu1-mesa-dev
2、下载Erlang源码包,例如OTP-26.3.2:wget https://github.com/erlang/otp/releases/download/OTP-26.3.2/otp_src_26.3.2.tar.gz
3、解压并进入源码目录:tar -zxf otp_src_26.3.2.tar.gz && cd otp_src_26.3.2
4、执行配置命令,指定安装路径并禁用Java支持:./configure --prefix=/opt/erlang-26.3.2 --enable-smp-support --enable-threads --enable-kernel-poll --without-javac --with-ssl
5、编译并安装:make -j$(nproc) && sudo make install
6、配置环境变量:编辑/etc/profile,追加以下两行:
export ERLANG_HOME=/opt/erlang-26.3.2
export PATH=$ERLANG_HOME/bin:$PATH
7、使配置生效并验证:source /etc/profile && erl -version
二、使用kerl工具管理多版本
kerl是专为Erlang/OTP设计的轻量级构建与版本管理工具,可在同一系统中并存多个Erlang版本,避免冲突,适合开发与测试场景。
1、下载并安装kerl脚本:curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl && chmod +x kerl && sudo mv kerl /usr/local/bin/
2、初始化kerl环境:kerl update releases
3、列出可用版本并选择安装:kerl list releases,随后执行:kerl build 26.3.2 26.3.2
4、将构建完成的版本安装至指定路径:kerl install 26.3.2 /usr/local/lib/erlang/26.3.2
5、激活该版本:source /usr/local/lib/erlang/26.3.2/activate
6、验证当前激活版本:erl -version
三、APT仓库安装(仅限部分麒麟OS版本)
若麒麟OS已配置兼容Ubuntu/Debian的软件源,可直接通过apt安装预编译的Erlang包,操作最简,但版本可能滞后且不支持自定义编译选项。
1、更新APT索引:sudo apt update
2、安装Erlang核心运行时及开发包:sudo apt install -y erlang-base erlang-dev erlang-docs erlang-manpages
3、验证安装路径与版本:which erl && erl -version
4、如需启用SSL支持,额外安装:sudo apt install -y erlang-ssl
四、离线二进制包安装(适用于无网络环境)
适用于内网麒麟服务器或安全隔离环境,需提前在联网机器下载对应架构的预编译包,再拷贝部署,无需编译过程。
1、在相同CPU架构(如aarch64或x86_64)的联网麒麟OS上,从Erlang官网下载对应平台二进制包:https://www.erlang.org/downloads
2、解压至目标路径,例如:sudo tar -C /opt -xzf otp_win64_26.3.2.exe.tar.gz(注意:Linux平台实际为.tar.gz格式,非.exe)
3、创建软链接便于统一调用:sudo ln -sf /opt/otp_win64_26.3.2 /opt/erlang
4、配置全局PATH:echo 'export PATH=/opt/erlang/bin:$PATH' | sudo tee -a /etc/profile.d/erlang.sh
5、加载配置并验证:source /etc/profile.d/erlang.sh && erl -noshell -eval 'io:format("~p~n", [erlang:system_info(otp_release)]), halt().' -s init stop
五、解决常见编译错误
麒麟OS编译Erlang时易因缺失底层库报错,需针对性补装依赖以保障configure阶段通过。
1、若提示"No curses library functions found",说明缺少ncurses开发库:sudo apt install -y libncurses5-dev
2、若提示"OpenSSL not found",需确认openssl-dev包已安装:sudo apt install -y libssl-dev
3、若configure失败并提示"No wxWidgets library found",而无需GUI组件,可在configure中添加--without-wx参数跳过检测
4、若编译中出现"undefined reference to 'clock_gettime'",需在configure后添加LDFLAGS="-lrt"环境变量重新执行make










