以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