开发者学堂课程【嵌入式之 RFID 开发与应用2020版:MQTT-mosquitto 最新版移植注意】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/665/detail/11179
MQTT-mosquitto 最新版移植注意
内容简介:
一、下载 Ubuntu 版本的方法
二、最新版本的移植方法
三、移植结束后就行的简单测试
四、总结移植过程
一、下载 Ubuntu 版本的方法
上节课在移植 mosquitto 的 1.5.4 版本的时候,出现错误,休息的时候进行了改正,但改正之后错误依然是存在的,Ubuntu 的版本是有问题的。下载的版本是18.04,但是课件中的版本是 16 或者是 12 的版本,所以有些问题,后来在Ubuntu16.04 的版本同样配置过,对于 18 来说,要用最新的,所以建议在网上下载。在百度中输入 mosquitto.or 进去页面之后点击 Community 再点击 40 releases 就可以下载最新版。1.6.9 就是最新版本,点击 Source code(tar.gz)下载。现在就不去下载了,刚才已经下载好了。
二、最新版本的移植方法
首先,进行解压, 在窗口输入 tar xvf mosquitto-1.6.9.tar.gz,
然后创建一个安装路径 mosquitto-1.6.9_install, 再进入到 mosquitto-1.6.9_install里面。
它的配置比之前低版本的要简单,已经做了很多的工作,它的整个配置不需要用config 去配,只需要设置一个目标的环境变量 destdir 就可以。把路径 mosquitto-1.6.9_install 设成环境变量 /home/edu/debug/mqtt/mosquitto-1.6.9_install,
用完之后再把环境变量取消就可以,接下来就只需要打开 config。打开之后直接修改里面的,在 lcrypto 的后面加上 _ldl BROKER_LDADD:=$(BROKER_LDADD)-lssl-lcrypot-ldl LIB_LIBADD=$(LIB_LIBADD) -lssl -lcrypto -ldlPASSWD_LDADD:=$(PASSWD _LDADD) _lcrypto -ldlSTATIC_LIB_deps:=$(STATIC_LIB_DEPS)-lssl-lcrypto-ldl
,把四个地方改完之后退出就可以编译了。
因为编译时间不是很长,大概两分钟于是就把它给截掉了,编完之后,接下来可以看一下,安装目录里面没有东西,现在直接安装,然后再回到另一个窗口,它的东西被安装到了 user 目录,user 目录下有 local、bin 还有 sbin 这是普通的命名,还有 etc,etc 和直接去安装的是一样的,服务器的配置文件就在这个地方,装完之后要把之前的环境变量取消。结束之后,需要进入到服务器里配置文件有 example 把它拷一份出来。其实就是给了一个参考,从 mosquitto.conf.example 得到mosquitto.conf,其实默认的基本上没有什么配置,里面全部给的是一些建议,如果需要配置就把这个情况打开,或者是自己向其中去添加,这个很长,就不一一去看。
三、移植结束后就行的简单测试
结束之后就可以用 PPT 里面所讲的方法进行测试,先进行一个测试,先不要对参数去进行修改,测试建议因为是直接生成的命令 edu@edu;mosquitto_1.6.9_install$ cd usr/local/bin/,
命令就不需要添加环境变量了,这样会跟系统安装的产生冲突,就直接去启动,假设要启动 usr/local/sbin, 假设要启动这个服务器,那就直接 ./mosquitto,那么-C 指定配置文件 /home/edu/debug/mqtt/mosquitto-1.6.9_install/etc/mosquitto/mosquitto.conf,1883 端口正在被使用,可以换一个端口 -p 1893, 启动了之后,在另一个窗口可以去订阅,订阅可以用早期 PPT 之前的方法。
用 mosquitto_sub -t“temp” 这种方发直接订阅就可以,而且这个时候可以用系统自带的命令去订阅,也可以用当前目录下去编写的 mosquitto_sub-t temp 去订阅,订阅完成后接下来去发布,发布用 mosquitto_pub -t temp -m hello,看另一个窗口是否可以收到,按回车,显示并没有收到,这时重新再加一些参数,因为端口号改为了 -p 1893 ,重新发布一下 -p 1893, 这样就收到了,首先服务器是编译的,订阅是编译的,发布也是订阅的,但是如果用系统自带的去发布也可以,系统自带的话,把“. /”去掉,因为协议本身是相同的,用哪个工具来实现都可以,剩下的所有的配置,如果需要对服务器进行一系列的配置完全包括在编译的时候并没有对配置文件进行过多的裁剪,对这个源码 mosquitto -1.6.9$ vim config mk,仔细观察会发现整个文件的开头就是所支持的这些模块,几乎可能都是 yes
除非手动的把它关闭,当然也有一些关闭的,所以说采用的是系统的默认配置,基本上能有的功能都有了,而且现在用的这个版本 mosquitto --version 是 1.6.8,之前的版本是 1.6.9,差了一个版本,所以几乎是差不多的,接下来所有的配置比如说要去进行非匿名登录,就需要把这个配置文件 etc/mosquitto/mosquitto.conf 加上,然后通过 passwd 去生成账户,passwd 这个地方也有。如果说需要进行更多的配置,同理比如说安全通信、ssl 同样的配置,包括证书、公钥、密钥。
四、总结移植过程
整个移植过程最后进行简单总结就是,在 ubuntu 的更高级的版本中 18.04 里面,1 版本会有问题,具体问题后面有时间去查,换一个最新的版本就过了,1.5.4 在低版本中编译是没有问题的。最后就是对它的使用方法LD_LIBRARY_PATH=/home/user/mqtt/pc/mqtt_install/home/user/mqtt/pc/mqtt-install/lib,
这里就不去设环境变量了,暂时用在网上更新的,不是用源码编译。下节课会去讲嵌入式的移植。