一、系统环境准备与依赖项检查
在Ubuntu服务器上部署Erlang/OTP环境前,需要确保系统满足基本要求。建议使用Ubuntu 18.04 LTS或更高版本,这些长期支持版本能提供稳定的运行基础。通过lsb_release -a
命令可查看当前系统版本信息。Erlang/OTP运行时需要GCC编译器、make工具链以及OpenSSL等基础库支持,使用sudo apt install build-essential libssl-dev autoconf
可一次性安装所有编译依赖。值得注意的是,Ubuntu官方仓库中的Erlang版本往往较旧,要获取最新特性支持,建议通过第三方仓库或源码编译安装。
二、通过Kerl工具管理多版本Erlang
对于需要同时维护多个Erlang/OTP版本的项目环境,Kerl是最受欢迎的版本管理工具。这个轻量级Shell脚本允许开发者在同一台Ubuntu服务器上安装并切换不同版本的Erlang运行时。安装过程仅需执行curl -O https://raw.githubusercontent.com/kerl/kerl/master/kerl
下载脚本,通过chmod +x kerl
添加执行权限。使用./kerl update releases
可以获取所有可用版本列表,而./kerl build 25.3
则开始编译指定版本。这种方案相比直接使用apt安装,能更灵活地应对不同项目的版本需求。
三、源码编译安装最新稳定版
当需要完全控制编译参数或使用特定补丁时,从Erlang官方源码编译是最可靠的选择。从erlang.org下载最新稳定版的tar.gz压缩包,解压后进入目录执行标准的configure-make流程。关键的配置选项包括--prefix=/usr/local/erlang
指定安装路径,以及--with-ssl
启用加密支持。编译过程可能持续30分钟以上,建议使用make -j$(nproc)
命令并行编译以加快速度。安装完成后,需要将Erlang的bin目录加入PATH环境变量,并通过erl -version
验证安装是否成功。这种方式的优势在于可以针对特定硬件架构优化性能。
四、配置Rebar3构建工具链
现代Erlang项目开发离不开专业的构建工具,Rebar3作为当前事实标准,提供了依赖管理、热代码加载和发布打包等关键功能。在Ubuntu上安装只需执行curl -O https://s3.amazonaws.com/rebar3/rebar3
下载二进制文件,添加执行权限后移动到PATH包含的目录。首次运行时会自动完成初始化配置,创建~/.config/rebar3目录存放全局设置。为提升国内下载速度,可以通过rebar3 local install
命令设置镜像源。Rebar3的强大之处在于其插件系统,通过rebar3_auto就能实现代码变更的自动重新编译。
五、IDE开发环境集成方案
虽然Erlang代码可以在任何文本编辑器中编写,但专业的IDE集成能显著提升开发效率。对于Ubuntu服务器环境,推荐使用VS Code配合Erlang LS语言服务器。通过snap或deb包安装VS Code,在扩展市场中搜索安装Erlang插件。配置时需要指定erl和rebar3的路径,通常位于/usr/local/bin目录下。更高级的配置包括设置erlang_ls.config
文件来定义代码路径和编译选项,这对大型项目特别重要。这种组合提供了语法高亮、代码补全、跳转定义等现代IDE特性,使得在Ubuntu服务器上开发Erlang应用更加高效。
六、容器化部署与生产调优
在生产环境中,推荐使用Docker容器来部署Erlang/OTP应用。官方维护的erlang镜像基于Alpine Linux,体积仅50MB左右。通过多阶段构建可以创建包含编译环境和运行时的最小镜像,典型Dockerfile需要包含FROM erlang:25-alpine基础镜像,以及COPY --from=builder的构建结果。对于性能调优,需要关注ERL_AFLAGS环境变量设置,特别是+sbwt none
禁用调度器唤醒阈值,以及+swct very_eager
调整垃圾回收策略。这些参数需要根据Ubuntu服务器的CPU核心数和内存容量进行针对性调整。