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
EMQX源码编译过程的更多相关文章
- Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程
Ubuntu 14.04 LTS 下 android 2.3.5 源码编译过程 在新的Ubuntu 64位系统下去编译早期的安卓源码是会出现很多问题的,因为64位系统在安装完成后,很多32位的兼容 ...
- 英蓓特Mars board的android4.0.3源码编译过程
英蓓特Mars board的android4.0.3源码编译过程 作者:StephenZhu(大桥++) 2013年8月22日 若要转载,请注明出处 一.编译环境搭建及要点: 1. 虚拟机软件virt ...
- Hadoop源码编译过程
一. 为什么要编译Hadoop源码 Hadoop是使用Java语言开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库(Native Libraries)的概念,通 ...
- nginx源码编译以及源码编译过程中遇到的问题
本文主要讲nginx安装以及安装过程中遇到的问题. 谈到nginx 必须聊聊它的起源和发展. nginx是由俄罗斯工程师Igor Sysoev 用C语言开发的一个免费开源的Web服务器软件,于2004 ...
- android源码编译过程
1.下载好android源码包. 2.装好vm,ubuntu(如果能在实体机装linux更好). 3.安装所需要的deb包 在终端执行如下命令: sudo apt-get install flex b ...
- spring5源码编译过程中必经的坑
spring源码编译流程:Spring5 源码下载 第 一 步 : https://github.com/spring-projects/spring-framework/archive/v5.0.2 ...
- Hadoop2.7.2源码编译过程
目录 准备工作 jar包安装 源码编译 准备工作 CentOS可以联网,验证:ping www.baidu.com 是畅通的 jar 包准备(hadoop 源码.JDK8.maven.ant .pro ...
- TextMate2 最新版下载及源码编译过程
TextMate2 已经开源,我刚编译成功,如果有需要的同学可以点击下面百度网盘的链接下载.我系统版本是:Mac OS X 10.8.4. TextMate version 2.0-alpha.946 ...
- emqx源码编译
1 下载 github上下载 2 找台虚拟机,安装编译所需的环境,erlang make等 3 执行make命令 重点说一下第3步: 主要是make命令报错 解释:执行make命令后,依赖 ...
随机推荐
- RAC中常见的高级用法-过滤
filter 过滤信号,使用它可以获取满足条件的信号. - (void)filter { //只有当我们文本框内容长度大于5才想要获取文本框的内容 [[_passWord.rac_textS ...
- i++ 和 ++i 探究原理
先看一个例子: package com.test; public class AutoIncrement { public static void main(String[] args) { int ...
- JQuery 和 CSS 等选择器:
JQuery 选择器: CSS 选择器:
- 使用jsp制作index,可以通过<c:if test==“管理员”>或<c:if test=="客户">来区别展示用户界面
<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ ta ...
- 使用wesocket从 rabbitMQ获取实时数据
rabbitmq支持stomp组件,通过stomp组件和websocket可以从rabbitMQ获取实时数据.这里分享一个demo: 使用时需要引入的js ,用到了sock.js和stomp.js & ...
- Python——连接数据库操作
一.数据库基础用法 要先配置环境变量,然后cmd安装:pip install pymysql 1.连接MySQL,并创建wzg库 #引入decimal模块 import pymysql #连接数据库 ...
- 8、Redis五大数据类型---哈希(Hash)
一.哈希(Hash)简介: Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象. Redis hash 是一个键值对集合. 二.常用命令 1.h ...
- 【JAVA今法修真】 第六章 天道无情,锁定乾坤
您好,我是南橘,万法仙门的掌门,刚刚从九州世界穿越到地球,因为时空乱流的影响导致我的法力全失,现在不得不通过这个平台向广大修真天才们借去力量.你们的每一个点赞,每一个关注都是让我回到九州世界的助力,兄 ...
- springboot整合阿里云视频点播接口
官方SDK文档地址: https://help.aliyun.com/document_detail/57756.html?spm=a2c4g.11186623.6.904.4e0d3bd9VbkIC ...
- IDEA推荐配置(自动导入包、提示不区分大小写)
设置快捷键方式为eclipse 设置代码提示不区分大小写 自动导入包 可以通过 Ctrl + 鼠标滚轮 来控制代码字体大小显示 显示行号和显示区分方法线 代码一行显示不下,软分行显示,点击鼠标右键 增 ...