Difference between revisions of "Mosquitto from Source"
Jump to navigation
Jump to search
(9 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
{{{!}} class="wikitable" style="float: right; width: 322px;" border="2" | |||
{{!}}+ Proven on: | |||
{{!}}- <!-- Debian --> | |||
{{!}} style="text-align: center; width: 60px;" {{!}} [[File:Logo Debian.png{{!}}60px{{!}}link=https://www.debian.org/{{!}}center{{!}}middle{{!}}frameless]] | |||
{{!}} style="text-align: center; width: 40px;" {{!}} 12 (bookworm) | |||
{{!}} | |||
<br> | |||
{{!}}} | |||
== '''<span style="color: rgb(132, 63, 161);">The required tools:</span>''' == | == '''<span style="color: rgb(132, 63, 161);">The required tools:</span>''' == | ||
Line 49: | Line 58: | ||
== '''<span style="color: rgb(132, 63, 161);">Install it:</span>''' == | == '''<span style="color: rgb(132, 63, 161);">Install it:</span>''' == | ||
* <code>adduser --system --group mosquitto</code> | |||
* <code>sudo make install</code> | * <code>sudo make install</code> | ||
* <code>sudo cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf</code> | |||
== '''<span style="color: rgb(132, 63, 161);">Enable it as a systemd service:</span>''' == | == '''<span style="color: rgb(132, 63, 161);">Enable it as a systemd service:</span>''' == | ||
Line 69: | Line 82: | ||
== '''<span style="color: rgb(132, 63, 161);">Configure it:</span>''' == | == '''<span style="color: rgb(132, 63, 161);">Configure it:</span>''' == | ||
Default configuration works just fine like a default install from the repos... | |||
That said... | |||
* <code>sudo vi /etc/mosquitto/mosquitto.conf</code> | |||
For now, take a look at the huge selection of options in there. | |||
After making any changes: | |||
* <code>sudo service mosquitto restart</code> | |||
== '''<span style="color: rgb(132, 63, 161);">Use it:</span>''' == | == '''<span style="color: rgb(132, 63, 161);">Use it:</span>''' == | ||
This is a very deep rabbit hole. | |||
= Resources = | |||
* [https://mosquitto.org/documentation/ Mosquitto Documentation] | |||
* [https://github.com/eclipse/mosquitto Mosquitto GitHub Repo] |
Latest revision as of 19:22, 3 March 2024
12 (bookworm) |
|
The required tools:
apt install git build-essential autoconf cmake
Get the source:
git clone https://github.com/eclipse/mosquitto.git
The prerequisites:
apt install libc-ares-dev libwebsockets-dev libssl-dev xsltproc docbook-xsl libsystemd-dev libwrap0-dev openssl
- # cJSON
git clone https://github.com/DaveGamble/cJSON
cd cJSON
mkdir build
cd build
cmake ..
make
sudo make install
cd ../..
- # uthash / utlist
git clone https://github.com/troydhanson/uthash
cp uthash/src/* mosquitto/include
- # For testing
apt install python3-psutil
git clone https://gitlab.com/cunity/cunit.git
cd cunit
mkdir local-build
cd local-build
cmake ..
cmake --build .
sudo make install
cd ../..
Build it:
cd mosquitto
make
Test it:
make test
or
make check
Note: There are a fairly large number of tests that bring this to a grinding halt unless you comment them out. MUCH more research is needed...
24/1474 tests fail...
18 of those make the test procedure halt...
Install it:
adduser --system --group mosquitto
sudo make install
sudo cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf
Enable it as a systemd service:
sudo cp service/systemd/mosquitto.service.simple /etc/systemd/system/mosquitto.service
sudo vi /etc/systemd/system/mosquitto.service
Fix the location in line 8.
The install step on Debian puts the executable in /usr/local/sbin not /usr/sbin
sudo systemctl daemon-reload
sudo systemctl restart mosquitto.service
To be done:
Configure it:
Default configuration works just fine like a default install from the repos...
That said...
sudo vi /etc/mosquitto/mosquitto.conf
For now, take a look at the huge selection of options in there.
After making any changes:
sudo service mosquitto restart
Use it:
This is a very deep rabbit hole.