当前位置: 首页 > article >正文

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


http://www.kler.cn/news/316128.html

相关文章:

  • k8s下的网络通信与调度
  • 苹果CMS插件:优化蜘蛛访问内容,提升百度收录率
  • 供方软件供应链安全保障要求及开源场景对照自评表(下)
  • 【JVM】类加载
  • 玩转RabbitMQ声明队列交换机、消息转换器
  • 用终端请求接口
  • [数据集][目标检测]手机识别检测数据集VOC+YOLO格式9997张1类别
  • 283. 移动零
  • Linux:权限管理
  • mysql等保数据库命令
  • 【动态规划】两个数组的 dp 问题二
  • 828华为云征文 | 云服务器Flexus X实例:开源项目 LangChain 部署,实例测试
  • 演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制
  • 【编程基础知识】mysql是怎样执行一条sql语句的,涉及到哪些环节步骤是,mysql的整体体系结构是啥样的,有哪些组件
  • 如何使用ssm实现大湾区旅游推荐系统的设计与实现+vue
  • (一)Lambda-Stream流
  • 前端常用的设计模式
  • C++ -缺省参数-详解
  • Exploring Large Language Models for Knowledge Graph Completion
  • 【设计模式】工厂模式、单例模式、观察者模式、发布订阅模式
  • C++_继承详解
  • 构建智能化直播美颜工具:视频美颜SDK的开发指南
  • 灯塔:JavaScript
  • C++:多态(协变,override,final,纯虚函数抽象类,原理)
  • 10 vue3之全局组件,局部组件,递归组件,动态组件
  • 博睿谷IT认证-订阅试学习
  • 利用H5无插件播放RTSP流的实现方案
  • Vue3 路由传参:玩转 params,让页面交互更流畅!
  • 什么是堡垒机?运维为什么需要堡垒机?
  • ES 索引或索引模板