Skip to content

emqx-3.2.8编译

what: emqx-3.2.8编译

when: 2021/11/04

who:JRT

where:centos:7

why:记录

1.安装依赖

yum install git gcc gcc-c++ make unixODBC unixODBC-devel wxWidgets-devel libtool libtool-ltdl-devel libevent-devel lua ncurses-devel openssl-devel flex unzip vim wget -y

2.编译erlang

#下载源码包到指定路径
wget https://erlang.org/download/otp_src_21.2.tar.gz
tar -xf otp_src_21.2.tar.gz
cd otp_src_21.2
./configure --prefix=/usr/local/erlang --with-ssl --enable-threads --enable-smp-support --enable-kernel-poll --enable-hipe --without-javac
make && make install
#配置环境变量
vim /etc/profile
export ERLANG_HOME=/usr/local/erlang
export PATH=$PATH:$ERLANG_HOME/bin
source /etc/profile

3.编译rebar3

#下载源码包
git clone https://github.com/erlang/rebar3.git
cd rebar3
./bootstrap
./rebar3 local install
export PATH=/root/.cache/rebar3/bin:$PATH

4.编译emqx

git clone https://github.com/emqtt/emq-relx.git
cd emq-relx
make
#关键日志
===> Compiling emqx_auth_ldap
===> Starting relx build process ...
===> Resolving OTP Applications from directories:
          /opt/emq-relx/_build/emqx/lib
          /opt/emq-relx/_checkouts
          /usr/local/erlang/lib/erlang/lib
===> Resolved emqx-v3.2.8
===> Including Erts from /usr/local/erlang/lib/erlang
===> release successfully created!

#启动服务
cd _build/emqx/rel/emqx/bin
[root@5e1265b240f3 bin]# ./emqx console
Exec: /opt/emq-relx/_build/emqx/rel/emqx/erts-10.2/bin/erlexec -boot /opt/emq-relx/_build/emqx/rel/emqx/releases/v3.2.8/emqx -mode embedded -boot_var ERTS_LIB_DIR /opt/emq-relx/_build/emqx/rel/emqx/erts-10.2/../lib -mnesia dir "/opt/emq-relx/_build/emqx/rel/emqx/data/mnesia/emqx@127.0.0.1" -config /opt/emq-relx/_build/emqx/rel/emqx/data/configs/app.2021.11.04.08.00.46.config -args_file /opt/emq-relx/_build/emqx/rel/emqx/data/configs/vm.2021.11.04.08.00.46.args -vm_args /opt/emq-relx/_build/emqx/rel/emqx/data/configs/vm.2021.11.04.08.00.46.args -- console
Root: /opt/emq-relx/_build/emqx/rel/emqx
/opt/emq-relx/_build/emqx/rel/emqx
Erlang/OTP 21 [erts-10.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:32]

Starting emqx on node emqx@127.0.0.1
Start http:management listener on 8080 successfully.
Start http:dashboard listener on 18083 successfully.
Start mqtt:tcp listener on 127.0.0.1:11883 successfully.
Start mqtt:tcp listener on 0.0.0.0:1883 successfully.
Start mqtt:ws listener on 0.0.0.0:8083 successfully.
Start mqtt:ssl listener on 0.0.0.0:8883 successfully.
Start mqtt:wss listener on 0.0.0.0:8084 successfully.
EMQ X Broker 3.2.8 is running now!
Eshell V10.2  (abort with ^G)
(emqx@127.0.0.1)1> 

5.问题

#编译emqx报git版本太低
#安装依赖
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker -y
#卸载git
yum -y remove git
rm -rf /usr/bin/git
#下载源码包
wget https://github.com/git/git/archive/refs/tags/v2.33.1.tar.gz
cd git-2.33.1
make prefix=/usr/local/git all
make prefix=/usr/local/git install
vi /etc/profile 
export PATH=$PATH:/usr/local/git/bin
source /etc/profile
git --version
git version 2.33.0