【linux笔记】从源码编译安装mosquitto

文章目录

  • 一、下载
  • 二、安装
  • 三、配置mosquito
    • 1. 配置匿名登录
    • 2. 配置密码登录
  • 四、配置开机启动

一、下载

官方源码下载

sudo wget https://mosquitto.org/files/source/mosquitto-2.0.15.tar.gz
tar -zxvf mosquitto-2.0.15.tar.gz   //编译是cd进入源码文件夹内

二、安装

安装依赖:

sudo apt install gcc g++ make libssl-dev libcjson-dev libwebsockets-dev

编译安装

sudo make 
sudo make install

三、配置mosquito

1. 配置匿名登录

配置mosquitto,创建配置文件,也可以自定义其他路径和文件名

sudo vim /etc/mosquitto/conf.d/mycfg.conf

匿名登录开启:

allow_anonymous true
listener 1883

然后可以先手动开启测试下配置是否正确(用户权限下mosquitto命令找不到可能是正常的,执行文件有时在/usr/local/sbin/下面):

sudo mosquitto -c /etc/mosquitto/conf.d/mycfg.conf

2. 配置密码登录

先创建密码文件,命令输入后会提示输入两次密码,输入完成后文件创建完成

sudo mosquitto_passwd -c /etc/mosquitto/passwd ankee

创建配置文件,也可以自定义其他路径和文件名

sudo vim /etc/mosquitto/conf.d/mycfg.conf

配置密码文件,关闭匿名登录:

allow_anonymous false
listener 1883

password_file /etc/mosquitto/passwd

然后可以先手动开启测试下配置是否正确(用户权限下mosquitto命令找不到可能是正常的,执行文件有时在/usr/local/sbin/下面):

sudo mosquitto -c /etc/mosquitto/conf.d/mycfg.conf

四、配置开机启动

sudo vim /etc/systemd/system/mosquitto.service

注意ExecStart中执行命令和自己配置文件的路径和文件名正确

[Unit]
Description=Mosquitto MQTT Broker
After=network.target

[Service]
ExecStart=mosquitto -c /etc/mosquitto/conf.d/mycfg.conf
Restart=always
User=root

[Install]
WantedBy=multi-user.target

配置开机重启

sudo systemctl daemon-reload
sudo systemctl enable mosquitto

如果之前有过配置可能会有以下错误:

  • 错误1,不能开启服务:
    Failed to enable unit: Unit file /etc/systemd/system/mosquitto.service is masked.
    在这里插入图片描述
    先解锁,然后重新执行上面的步骤:
sudo systemctl unmask mosquitto
  • 错误2,mosquitto_sub提示版本问题:
    mosquitto_sub: /lib/arm-linux-gnueabihf/libmosquitto.so.1: version `MOSQ_1.7’ not found (required by mosquitto_sub)
    在这里插入图片描述
cd /usr/lib/arm-linux-gnueabihf/
sudo rm ./libmosquitto*
sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/arm-linux-gnueabihf/libmosquitto.so.1
sudo ldconfig

你可能感兴趣的:(linux,linux,mosquitto)