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

news2024/9/19 10:44:48

场景

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.coloradmin.cn/o/2141455.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Objects as Points基于中心点的目标检测方法CenterNet—CVPR2019

Anchor Free目标检测算法—CenterNet Objects as Points论文解析 Anchor Free和Anchor Base方法的区别在于是否在检测的过程中生成大量的先验框。CenterNet直接预测物体的中心点的位置坐标。 CenterNet本质上类似于一种关键点的识别。识别的是物体的中心点位置。 有了中心点之…

Python青少年简明教程:tkinter库入门

Python青少年简明教程:tkinter库入门 tkinter是Python的标准GUI(图形用户界面)库。它提供了一种快速而简单的方法来创建GUI应用程序。tkinter是Python自带的,无需额外安装,随 Python 安装包一起提供。 在Python 3.x中…

Leetcode—1137. 第 N 个泰波那契数【简单】

2024每日刷题(160) Leetcode—1137. 第 N 个泰波那契数 记忆化搜索实现代码 class Solution { public:int tribonacci(int n) {int zero 0;int one 1;int two 1;if(n 0) {return zero;}if(n 1) {return one;}if(n 2) {return two;}int ans 0;fo…

三重因素,巨人瘦身——从 IBM中国研发部裁员讲起

如何看待IBM中国研发部裁员?近日,IBM中国宣布撤出在华两大研发中心,引发了IT行业对于跨国公司在华研发战略的广泛讨论。这一决定不仅影响了众多IT从业者的职业发展,也让人思考全球化背景下中国IT产业的竞争力和未来发展方向。面对…

手机、平板电脑编程———未来之窗行业应用跨平台架构

一、平板编程优点 1. 便携性强 - 可以随时随地携带平板进行编程,不受地点限制,方便在旅行、出差或休息时间进行学习和开发。 2. 直观的触摸操作 - 利用触摸屏幕进行代码编辑、缩放、拖动等操作,提供了一种直观和自然的交互方式。 …

TypeScript:高级类型

一、交叉类型(Intersection Types) 交叉类型是将多个类型合并为一个类型。 这让我们可以把现有的多种类型叠加到一起成为一种类型,它包含了所需的所有类型的特性。 例如, Person & Serializable & Loggable同时是 Person …

建模杂谈系列256 规则函数化改造

说明 之前尝试用FastAPI来构造规则,碰到的问题是由于请求量过大(TPS > 1000), 从而导致微服务端口资源耗尽。所以现在的point是: 1 如何使用函数来替代微服务(同时要保留使用微服务的优点)2 进一步抽象并规范规则的执行3 等效合并规则的方法 内容 0 机制讨论…

Vue2源码解读

vue源码_哔哩哔哩_bilibili 1.Vue源码路径目录解读 Vue2源码的路径目录被设计得非常清晰,每个文件夹都承担着特定的职责和功能。以下是这些主要文件夹(compiler、core、platform、server、sfc、shared)的详细解读: 1. compiler …

LLM大模型部署实战指南:Ollama简化流程,OpenLLM灵活部署,LocalAI本地优化,Dify赋能应用开发

1. Ollama 部署的本地模型(🔺) Ollama 是一个开源框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。,这是 Ollama 的官网地址:https://ollama.com/ 以下是其主要特点和功能概述: …

VLMEvalKit 评测实践:InternVL2 VS Qwen2VL

一、InternVL2简介 InternVL2是由上海人工智能实验室OpenGVLab发布的一款多模态大模型,其中文名称为“书生万象”。该模型在多学科问答(MMMU)任务上表现出色,成为国内首个在该任务上性能突破60的模型,被誉为开源多模态…

k8s 微服务 ingress-nginx 金丝雀发布

目录 一 什么是微服务 二 微服务的类型 三 ipvs模式 3.1 ipvs模式配置方式 四 微服务类型详解 4.1 clusterip 4.2 ClusterIP中的特殊模式headless 4.3 nodeport 4.4 loadbalancer 4.5 metalLB 4.6 externalname 五 Ingress-nginx 5.1 ingress-nginx功能 5.2 部署…

5. Python之数据类型

Python数据类型有数值型,字符串型,布尔型等等 内置函数type(),可以查看变量的数据类型 。 一、数值类型 整数(没有小数部分,包含正整数,负整数,0,默认为十进制数)&…

C++ 类域+类的对象大小

个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目:C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 类定义了一个新的作用域,类的所有成员都在类的作用域中&#xff…

华为杯数学建模资料大全、入门指导攻略、获奖数据分析、选题建议

这里收集的资料个人认为已经非常全也非常值了,这么多资料收集成本真的不低 数学建模比赛资料部分(需要私聊找我) 华为杯创办以来每一年的比赛题目原题(包括A到F题)华为杯每年每种题目的优秀获奖作品论文 近几年的华…

2022高教社杯全国大学生数学建模竞赛C题 问题一(2) Python代码演示

目录 1.2 结合玻璃的类型,分析文物样品表面有无风化化学成分含量的统计规律数据预处理绘图热力图相关系数图百分比条形图箱线图小提琴图直方图KED图描述性统计分析偏度系数峰度系数其它统计量1.2 结合玻璃的类型,分析文物样品表面有无风化化学成分含量的统计规律 数据预处理 …

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF 文章目录 一、基本原理鲸鱼优化算法(WOA)随机森林(RF)WOA-RF的结合总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 WOA-R…

服务器断电重启后报XFS文件系统错误 XFS (dm-0)_ Metadata I_O error

一、现象 服务器被意外断电,导致重启机器后报错,系统错误 XFS (dm-0): Metadata I/O error 二、解决方法 2.1 重启服务器,进入单用户模式 服务器系统为: centos7.9 开机按e 定位到ro 然后修改ro为rw(“rw init/sysroot/bin/sh”…

2024-1.2.12-Android-Studio配置

本地博客: https://k1t0111.github.io/ K1T0 最近在做一些app方向的移动技术开发学习,但是由于AS的配置问题,市面上找不到最新的2024版本的AS的相关配置。笔者也是踩了很多坑,因此想写一篇文章记录一下最新的AS 2024 1.2.12的对应java环境的一…

JavaScript 笔记汇总

JavaScript 笔记汇总 引入方式 内部方式 通过 script 标签包裹 JavaScript 代码。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript 基础 - 引入方式</title> </head> <…

java项目之基于web的人力资源管理系统的设计与实现(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的基于web的人力资源管理系统的设计与实现。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; …