如何在树莓派4B上安装EMQ X Broker

跟师新生命的创始人大石头玩树莓派下的.NET Core有几个月时间了,一直想从零开始写一些入门的东西,但看了淘宝、京东还有哔哩哔哩等平台上很多入门的教程了,就一直没动手。

这不因为要在物联网方面做些探索,遇到第一个问题就是MQTT的服务器端的安装,但官网没有针对树莓派版本的下载,只能自己编译。

EMQ X Broker 是基于高并发的 Erlang/OTP 语言平台开发,支持百万级连接和分布式集群架构,发布订阅模式的开源 MQTT 消息服务器。

EMQ X Broker 在全球物联网市场广泛应用。无论是产品原型设计、物联网创业公司、还是大规模的商业部署,EMQ X Broker 都支持开源免费使用。

我先是在4B 1G的版本下编译,遇到了OTP的版本问题,以为升级一下树莓派的OS就行了,没想到在4B 4G版本安装了2020-05-27的full版本之后,还是默认版本达不到Erlang OTP版本21.3以上的编译要求。

OTP release 21.3 or later is required. Version in use: 21.2.6。

就只好先安装OTP了,这个倒是很快,不过如果你网络慢可能会在安装时失败,这时就再执行一下安装就行了

wget https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_22.1.6-1~raspbian~buster_armhf.deb
sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb

因为当前EMQX的版本是V4.1.1,所以我就用以下命令进行下载和编译了,大概半小时就可以完成。

sudo git clone -b v4.1.1 https://github.com/emqx/emqx-rel.git
cd emqx-rel && sudo make
cd _build/emqx/rel/emqx && sudo ./bin/emqx console

安装成功,可以用以下命令进行服务和仪表盘的查看

Quick Start
# 启动emqx
./bin/emqx start

# 检查状态
./bin/emqx_ctl status

# 停止emqx
./bin/emqx stop

启动后可以通过浏览器访问仪表盘:http://localhost:18083
默认用户名是 admin,密码是 public

现在划重点了,上述步骤在树莓派的Raspberry Pi OS (32-bit) with desktop and recommended software版本(Full)下很顺畅,但Raspberry Pi OS (32-bit) Lite那可是千辛万苦,因为很多依赖项都没有安装。

如果你是lite版本,可能这一行(sudo dpkg -i esl-erlang_22.1.6-1~raspbian~buster_armhf.deb)命令会报依赖错误,

请按建议使用sudo apt –fix-broken install,此时需要漫长的等待,下载600多M的文件。

如果一次不成功,继续使用sudo apt –fix-broken install直到成功。

成功后再执行上一行erlang安装命令,安装成功后,还得安装Git,使用命令sudo apt-get install git,可能编译的时候,会报错,需要重新编译一下,我是编译了两次才成功,要下载下来编译好的文件到本地,还需要手动安装sfp:sudo apt-get install vsftpd。

目前还没有在2020-05-27 64位版本和2020-05-27 Raspberry Pi OS (32-bit) with desktop下进行编译,有兴趣的朋友可以自己尝试。

当然了,我也附上EMQ X Broker V4.1.1 树莓派版本的编译压缩包,可自行下载解压缩研究。

wget http://raspberrypi.cuiwenyuan.com/emqx-raspberrypi-v4.1.1.zip
sudo unzip emqx-raspberrypi-v4.1.1.zip
cd emqx-raspberrypi-v4.1.1
sudo ./bin/emqx start