EMQX源码编译过程
以emqx4.0.7版本为例
1、安装erlang环境
可以参考:https://www.cnblogs.com/shanfeng1000/p/11951703.html
这里需要注意一下,要按照emqx官网说明,比如4.0.7版本,编译需要 Erlang/OTP R21+ ,也就是说 需要 Erlang/OTP 21版本以上的,我安装的是22.0版本的otp
安装erlang编译环境非常非常重要,大家安装好环境以后,再往下继续
2、下载源码
https://github.com/emqx/emqx
根据自己的需要选择 tag版本 我用的是4.0.7
3、执行make
我在执行make的时候发现报错,大概的意思是 rebar3命令找不到(截图懒得重现了)
那好,开始安装rebar3
我看网上大概有2种方法,一种是下载rebar3源码,然后编译;另一种是直接下载编译好的rebar3。选择第二种
比较简单的做法是:
1、下载 wget https://s3.amazonaws.com/rebar3/rebar3
2、赋权chmod +x /home/hylink/rebar3 (赋权)
3、./rebar3 local install (这一步不做好像也可以,不过还是执行一下)
4、把rebar3扔到 /usr/bin目录下(这一步的目的是环境变量,大家应该懂,也可以通过配置环境变量的方法实现,可以参考https://blog.csdn.net/ctwy291314/article/details/104550966)
5、验证 rebar3 --version
4、等待make执行完毕
为什么还要写4,因为make执行非常慢,而且容易卡住,卡住后可以取消,然后再次执行make
理论上 1 2 3没问题的话,4应该会出结果,当然,还遇到其他一些问题
emqx3、emqx4版本与emq2版本编译后文件位置不同,emqx3和emqx4的是在_build文件夹内
再说一下遇到的问题
1、按照emqx官方的readme,我使用emqx-rel项目,执行make没有成功,有兴趣的小伙伴可以尝试一下,这个不是我需要的
我要修改emqx的源码,所以我是修改emqx的src下的文件后,在emqx目录内执行的make 就是截图中emqx407目录内
2、还有个问题 就是make过程中,有时候报错,大家可以多尝试几次。如果尝试多次还报相同的错误,那就要找找原因了
可以观察一下Makefile文件 如果遇到很奇怪的问题 也可以make clean(会清除所有下载的lib和plugins) 然后重新执行 make或者make compile