系统版本centos7 X64

1.设置保存安装包路径

# cd /usr/local/src

2、开始下载源包

官网资源: https://mosquitto.org/files/source/

# wget https://mosquitto.org/files/source/mosquitto-1.6.7.tar.gz      

3、解压

解压后得到mosquitto-1.6.7文件目录

# tar zxvf mosquitto-1.6.7.tar.gz
# mv mosquitto-1.6.7 /usr/local/mosquitto-1.6.7

4、安装MQTT运行依赖环境

1)以下三个必须安装,不然make时无法通过。 另外安装MQTT之前,我们也可以# cat compiling.txt文件阅读一下官方的说明。

# yum -y install openssl-devel
# yum -y install gcc-c++
# yum -y install cmake

2)以下可选扩展功能,不安装也不影响MQTT使用,只是缺少部分对应的功能

c-ares(用于DNS-SRV支持,默认禁用)c-ares官网:http://c-ares.haxx.se

tcp-wrappers(可选,包名libwrapp0 dev)

lib-uuid(支持为每个连接客户端生成唯一uuid)

libwebsockets(可选,默认禁用,版本1.3及以上,安装可支持websocket功能) 关于MQTT和Websocket的区别,有兴趣可以到这个链接了解一下。

下面安装扩展功能:

# yum install -y c-ares-devel
# yum install -y uuid-devel
# yum install -y libuuid-devel
# yum install -y libwebsockets

如果想了解安装的库在哪个位置,# rpm -ql libuuid 可知道哪些文件是通过yum指令安装来的,卸载包使用# yum remove  libuuid

需要查询是否已经安装RPM包可输入# rpm -q libuuid-devel

5、修改config.mk配置文件

# cd /usr/local/mosquitto-1.6.7
# vim config.mk

修改以下为yes,如果前面有#就去掉,保存退出。

WITH_SRV:=yes

WITH_WEBSOCKETS:=yes

WITH_ADNS:=yes

6、编译安装

# make
# make install

以上执行# make时,如果不报错的话,就跳过以下说明。如果报错: mosquitto.c:49:29: fatal error: libwebsockets.h: No such file or directory 

那么说明libwebsockets 没有安装好,执行卸载# yum remove libwebsockets,下载新的源包的进行安装,步骤如下。

源包链接:https://github.com/warmcat/libwebsockets  我们选择一个版本复制zip下载链接,这里我选择的是1.5版本。

# wget https://github.com/warmcat/libwebsockets/archive/v1.5-stable.zip
# yum -y install unzip
# unzip libwebsockets-1.5.zip
# mkdir -p /usr/local/websocket
# mv libwebsockets-1.5-stable /usr/local/websocket
# cd /usr/local/websocke/libwebsockets-1.5-stable
# cmake .
# make
# make install

执行以上安装ibwebsockets后,重新编译安装MQTT   # cd /usr/local/mosquitto-1.6.7  # make    # make install  这3个命令前面已经列出过了。

7、启动

# mosquitto -c /etc/mosquitto/mosquitto.conf -d -p 1883 -v

8、启动MQTT报错解决

错误信息:mosquitto: error while loading shared libraries: libwebsockets.so.5: cannot open shared object file: No such file or directory

解决方法:使用whereis可以查找 libwebsockets.so.5的所在路径,建立一个软链接到/usr/lib 下即可。

# ln -s /usr/local/lib/libwebsockets.so.5 /usr/lib/libwebsockets.so.5
# ldconfig

9、测试

打开2个shell 窗口,登录你的linux账号。

订阅:mosquitto_sub -t mtopic  -h 47.0.0.0 -u sun_read

发布:mosquitto_pub -t mtopic  -h 47.0.0.0 -m "我发消息给你了"

MQTT linux centOS7 部署的更多相关文章

  1. Linux Centos7部署环境安装-CentOS

    Linux Centos7部署环境安装-CentOS Centos7部署环境安装及Linux常用命令 centos系统下各文件夹的作用 centos7修改系统默认语言 centos7安装rz/sz命令 ...

  2. Linux CentOS7部署ASP.NET Core应用程序,并配置Nginx反向代理服务器

    前言: 本篇文章主要讲解的是如何在Linux CentOS7操作系统搭建.NET Core运行环境并发布ASP.NET Core应用程序,以及配置Nginx反向代理服务器.因为公司的项目一直都是托管在 ...

  3. .NET Core跨平台:.NET Core项目部署到linux(Centos7)

    1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...

  4. Linux Centos7.x 安装部署Mysql5.7几种方式的操作手册

    简述 Linux  Centos7.x 操作系统版本下针对Mysql的安装和使用多少跟之前的Centos6之前版本有所不同的,下面介绍下在centos7.x环境里安装mysql5.7的几种方法: 一. ...

  5. linux上部署engineercms、docker和onlyoffice实现文档协作

    等了好久,这次终于下决心在局域网部署了linux系统,并安装docker和load了onlyoffice,利用engineercms进行资料管理和文档协作. 我整理了完整文档,见我的网盘. engin ...

  6. centos7 部署 docker ce

    =============================================== 2019/4/9_第1次修改                       ccb_warlock === ...

  7. centos7 部署 open-falcon 0.2.0

    =============================================== 2019/4/29_第3次修改                       ccb_warlock 更新 ...

  8. centos7 部署 docker、shipyard

    =============================================== 2019/4/9_第3次修改                       ccb_warlock 更新说 ...

  9. centos7部署JavaWeb项目

    centos7部署JavaWeb项目共有三步 1.配置java环境 2.配置tomcat环境. 3.部署JavaWeb项目 一.配置java环境 1.1安装java 参考我的另一篇博文:https:/ ...

随机推荐

  1. Docker启动时提示Get Permission Denied while trying to connect解决方法

    环境描述 vmware15虚拟机安装centos7.4 64位系统,docker版本19.03.2 问题描述 安装完docker后,执行docker相关命令 docker run ubuntu:15. ...

  2. 记录C#连接数据库工具类

    一.SQL Server /// <summary> /// 数据库的通用访问代码 /// 此类为抽象类, /// 不允许实例化,在应用时直接调用即可 /// </summary&g ...

  3. elasticsearch安装与使用

    一.windows10上安装elasticsearch Elasticsearch 需要 Java环境,在安装Elasticsearch之前先安装好JDK. 本文安装jdk1.8,es6.3.2为例. ...

  4. Jenkins实现单一安卓项目打包多个module填坑实录

    今天接手一个任务,已有项目结构上新添加了一个module,这个module打包工作需要在Jenkins上添加一个方便测试点击的打包工程 因为之前已有现成的打包工程,我直接新建了一个工程并且复制原有工程 ...

  5. 不相交集ADT 你是和谁是一类人?

    //不相交集ADT (抽象数据类型) //一般用于集合运算 //用树,这种结构组成,有多个树(=森林) //属于同一颗数的元素,表示处于同一个集合中 //主要支持2个操作. //1. Find操作,找 ...

  6. AcWing 29. 删除链表中重复的节点

    题目地址 https://www.acwing.com/problem/content/description/27/ 来源:剑指Offer 题目描述在一个排序的链表中,存在重复的结点,请删除该链表中 ...

  7. 史上最全的CSP2019复习指南

    CSP2019复习指南 知识点(大纲)内容参考于本人博客: 近22年NOIP考点一览 算法 基本算法: 模拟.暴力枚举.排序.贪心.递归.递推.贪心.二分.位运算 这些算法不再在此加以赘述,如有考前还 ...

  8. golang数据结构之递归解决迷宫问题

    简单来说:递归就是函数/方法自己调用自己,只是每次传入不同的变量. 递归可以解决各种数学问题:n皇后问题.阶乘问题.汉诺塔.迷宫问题.球和篮子问题等等: maze.go package maze im ...

  9. Android常用adb命令总结(一)

    ADB是android sdk里的一个工具,用这个工具可以直接操作管理android模拟器或者真实的andriod设备. ADB是一个客户端-服务器端程序,其中客户端是你用来操作的电脑,服务器端是an ...

  10. spring cloud 2.x版本 Sleuth+Zipkin分布式链路追踪

    前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 本文基于前两篇文章eureka-server.eureka-client.eureka ...