自学内容网 自学内容网

CentOS上使用rpm离线安装Mosquitto(Linux上Mqtt协议调试工具)附资源下载

场景

Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试:

Windows上Mqtt服务器搭建与使用客户端工具MqttBox进行测试_微软消息队列 测试工具-CSDN博客

Windows服务器上Mqtt服务器EMQX的安装使用:

Windows服务器上Mqtt服务器EMQX的安装使用_windows emqx是-CSDN博客

如果是在CentOS服务器上,且服务器不通外网,如何通过离线安装的方式进行MQTT协议的调试。

mosquitto

mosquitto是一款开源的MQTT消息代理(服务器)软件,实现了MQTT协议版本3.1和3.1.1,提供轻量级的,支持可发布/可订阅的的消息推送模式,

使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。

Mosquitto项目还提供了用于实现MQTT客户端的C库以及非常受欢迎的mosquitto_pub和mosquitto_sub命令行MQTT客户端。

mosquitto官网地址:

Eclipse Mosquitto

mosquitto源码地址:

GitHub - eclipse/mosquitto: Eclipse Mosquitto - An open source MQTT broker

文档中明确指出发布和订阅主题的指令

发布:

mosquitto_pub -t 'test/topic' -m 'hello world'

订阅:

mosquitto_sub -t 'test/topic' -v

更多订阅指令说明,参照:

mosquitto_sub man page | Eclipse Mosquitto

其安装方式有很多种,具体看官网文档说明。

Download | Eclipse Mosquitto

当然这里如果要进行离线安装,也可以通过编译源码的方式进行。

但是为避免编译源码后运行仍然提示缺某某依赖的情况,这里使用rpm离线安装的形式。

注:

博客:
霸道流氓气质-CSDN博客

实现

CentOS上使用rpm离线安装三方组件的过程

其实不光是离线安装mosquitto,安装其他依赖方式也类似。即线上服务器不通外网,无法通过yum等在线安装的方式进行。

那么可以使用一台能通外网的、与线上服务器操作系统一致的机器先行下载依赖,然后再将所有的rpm传输到线上服务器,再进行离线安装。

yum更换镜像源为阿里镜像源

上面在通外网机器上yum安装mosquitto提示:

Could not resolve host: mirrorlist.centos.org;未知的错误

这时需要更换yum的镜像源

第一步,将原镜像源备份。

cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步,下载阿里的镜像源文件

使用wget或者手动下载后传输到服务器上

http://mirrors.aliyun.com/repo/Centos-7.repo

或直接从文末资源包中获取。

然后将下载后文件修改为名称为CentOS-Base.repo,并将原位置文件替换掉

替换之后清除并重建yum缓存

yum clean all

yum makecache

Centos中安装epel库

epel:

EPEL(Extra Packages for Enterprise linux)是一个专门为Enterprise Linux发行版开发的软件仓库。

它最初由Fedora项目创建,现在也被Red Hat,CentOS和Scientific Linux所支持。

EPEL软件仓库有数百个软件包,它们的内容主要是由Fedora项目的社区成员维护和更新。

很多时候,我们安装完了linux系统之后,一般都会把yum源改成国内阿里云,或者华为云啥的,这样方便高速下载。

我们在Centos下使用yum安装时往往找不到rpm的情况,官方的rpm repository提供的rpm包也不够丰富,

而EPEL恰恰可以解决这两方面的问题。EPEL就是一个第三方的(非yum官方组织搞出来的额外软件库)

当你需要下载一些很小众的软件时候,yum在阿里云仓库里找不到这个小众软件的时候,它会自动询问epel仓库,99.99%的情况下,

可以在epel仓库找到。

执行如下指令

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

yum中离线只下载rpm包到指定路径

上面修改了yum的镜像源并安装epel后,就可以使用yum下载mosquitto所需的rpm依赖包了,为方便下载与传输,将其下载到指定目录下

执行如下指令

yum install mosquitto -y --downloadonly --downloaddir=/home/test/mqtt

这里将其下载到/home/test/mqtt目录中

下载完成之后可以发现有三个rpm包

rpm离线安装当前目录下所有的rpm包

将上面下载的rpm包复制到无法通外网的服务器某目录下,在次目录下执行

rpm -Uvh --nodeps *.rpm

其中:

-Uvh 表示升级已经存在的软件包或者安装新的软件包。其中 v 参数可选,表示在安装过程中显示详细信息。

*.rpm 表示需要安装的 RPM 软件包文件名,* 通配符可以匹配所有的 RPM 文件。

--nodeps 参数表示不检查软件包之间的依赖关系,直接安装该软件包。

离线安装成功

Mosquitto订阅mqtt协议主题数据指令与在线mqtt协议调试网址

上面mosquitto离线安装成功后如何验证和订阅mqtt主题进行调试

本地能通外网可以使用如下

网络在线mqtt协议调试网址:

test.mosquitto.org

具体使用参考网站说明

上面测试网站可使用如下指令调试:

mosquitto_sub -h test.mosquitto.org -t "#"

mosquitto订阅主题指令线上调试:

mosquitto_sub -h mqtt的ip -p mqtt端口 -t mqtt主题  -u '用户名' -P '密码'

线上调试结果

附资源打包下载地址

https://download.csdn.net/download/BADAO_LIUMANG_QIZHI/89759420


原文地址:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/142303279

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!