Difference between revisions of "Mosquitto from Source"
Jump to navigation
Jump to search
Line 63: | Line 63: | ||
* <code>sudo make install</code> | * <code>sudo make install</code> | ||
* <code>cp /etc/mosquitto/mosquitto.conf.example /etc/mosquitto/mosquitto.conf</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>''' == |
Revision as of 23:05, 2 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...
Use it:
This is a very deep rabbit hole.