蓝易云cdn:ubuntu20.04编译安装运行emqx
在 <span style="color:red">Ubuntu 20.04</span> 上部署 EMQX,当前更稳妥的路径是走 <span style="color:red">源码编译</span>(而不是直接按新版 Ubuntu 包文档来装),因为官方安装页当前明确列出的 Ubuntu 包支持版本是 <span style="color:red">22.04 / 24.04</span>。(docs.emqx.com) EMQX 另外, 这套方案的核心逻辑就一句话:<span style="color:red">用源码版本锁定 + 工具链版本锁定</span>,把“编译不稳定”变成“可重复交付”。这才是生产环境该有的打法。蓝易云CDN:Ubuntu 20.04 编译安装运行 EMQX(源码方式)
同时,EMQX 官方仓库仍提供 make 源码构建入口。(GitHub)下面方案按 EMQX 6.1.0 给出(2025-12 发布,属于较新版本)。(GitHub)
一、版本与依赖(关键点先讲清)
6.1.0 仓库的 .tool-versions 显示构建工具链为: <span style="color:red">Erlang 28.2-2</span>、<span style="color:red">Elixir 1.19.1-otp-28</span>、<span style="color:red">Rust 1.88.0</span>。(GitHub)asdf-erlang 的文档里有 Ubuntu 20.04 的依赖安装建议(包含 wx、OpenJDK、ncurses 等),可直接复用到 Erlang 编译前置环境。(GitHub)二、编译安装步骤(可直接执行)🛠️
sudo apt update
sudo apt -y install git curl build-essential autoconf m4 \
libncurses5-dev libncurses-dev libwxgtk3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev \
libgl1-mesa-dev libglu1-mesa-dev libpng-dev libssh-dev unixodbc-dev \
xsltproc fop libxml2-utils openjdk-11-jdk unzip
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.14.1
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
source ~/.bashrc
asdf plugin add erlang https://github.com/asdf-vm/asdf-erlang.git
asdf plugin add elixir https://github.com/asdf-vm/asdf-elixir.git
asdf plugin add rust https://github.com/code-lever/asdf-rust.git
asdf install erlang 28.2-2
asdf install elixir 1.19.1-otp-28
asdf install rust 1.88.0
asdf global erlang 28.2-2
asdf global elixir 1.19.1-otp-28
asdf global rust 1.88.0
git clone --branch 6.1.0 https://github.com/emqx/emqx.git
cd emqx
make
_build/emqx-enterprise/rel/emqx/bin/emqx start
_build/emqx-enterprise/rel/emqx/bin/emqx_ctl status三、命令解释(逐段说明,避免踩坑)
1)系统依赖安装
apt update:刷新软件索引,避免装到过期包。apt install ...:安装编译 Erlang/Elixir 所需库。build-essential/autoconf/m4:基础编译链。libncurses*:终端交互能力。libwxgtk*:Erlang observer/debugger 相关组件依赖。libssh-dev/unixodbc-dev:SSL、ODBC 相关编译能力。openjdk-11-jdk:部分 Erlang 构建场景会用到 Java 工具链。
这些依赖组合与 asdf-erlang 的 Ubuntu 20.04 建议项一致。(GitHub)2)安装 asdf
git clone ... ~/.asdf:安装版本管理器,用来精确控制 Erlang/Elixir/Rust 版本。echo ... >> ~/.bashrc:把 asdf 初始化脚本加入 shell 启动文件。source ~/.bashrc:立即生效,不用退出重登。3)安装语言插件与版本
asdf plugin add ...:给 asdf 增加 Erlang/Elixir/Rust 的管理能力。asdf install ...:安装 EMQX 6.1.0 对应版本(按 .tool-versions 对齐)。(GitHub)asdf global ...:设置全局默认版本,避免 make 时用错解释器版本。4)拉取并编译 EMQX
git clone --branch 6.1.0 ...:固定版本编译,避免 master 分支变更带来不确定性。make:执行 EMQX 官方仓库提供的源码构建流程。官方 README 已给出 make 与运行路径。(GitHub)5)启动与状态验证
.../bin/emqx start:后台启动 EMQX。.../bin/emqx_ctl status:检查节点是否正常运行(最直接的自检命令)。四、工作流程图(Vditor/Markdown 可用)
五、实战提醒(很关键)⚠️
make 失败,先排查是否为 <span style="color:red">Erlang/Elixir/Rust 版本不匹配</span>,这是最常见原因之一。