Die Installation des QuickHMI – Servers auf einer Linux-Distribution erfolgt über das Terminal. Bitte beachten Sie hierzu die Systemvoraussetzungen für Linux!
Öffnen Sie ein Terminal oder verbinden Sie sich über einen SSH – Zugriff auf Ihr Linux – System.
Auszuführende Befehle können sich von Distribution zu Distribution unterscheiden. Die Befehle in dieser Anleitung orientieren sich an Linux Ubuntu.
| Neuinstallation *1 | Update *2 | Upgrade *3 | |
| X | 1. Deinstallation der Vorgängerversion. Deinstallation | ||
| X | 1. Installieren Sie eine openJDK Laufzeitumgebung. Unterstützt werden Laufzeitumgebungen ab Version 11. Sollte es keine aktuelle Paketquelle für die Version 11 des openjdk in der verwendeten Linuxdistribution geben, können Sie die Version 17 verwenden. sudo apt-get install openjdk-11-jre | ||
| X | 2. Falls Sie den grafischen RuntimeManager nutzen wollen, installieren Sie openjfx. Anderenfalls können Sie diesen Schritt überspringen.sudo apt-get install openjfx | ||
| X | 3. Legen Sie einen neuen Nutzer quickhmi mit dem Passwort indi an. Dieser Nutzer wird genutzt, um den QuickHMI Server zu starten.username="quickhmi" | ||
| X | X | X | 4. Wechseln Sie in den Ordner „/home/quickhmi“.cd /home/quickhmi |
| X | X | X | 5. Laden Sie das QuickHMI Server Paket herunter. Anstatt den wget Befehl zu nutzen, können Sie die Datei auch zuvor auf einem anderen Rechner herunterladen und dann in das aktuelle Verzeichnis (/home/quickhmi) kopieren.sudo wget https://www.quickhmi.de/linux/lynx/QuickHMIServer.tar |
| X | X | X | 6. Entpacken Sie das QuickHMI Server Paket nach /home/quickhmi.sudo tar -xvf QuickHMIServer.tarSie sollten jetzt folgende Ordnerstruktur vorfinden: /home/quickhmi/QuickHMIServer Lynx |
| X | X | X | 7. Löschen Sie das QuickHMI Server Paket.sudo rm QuickHMIServer.tar |
| X | X | 8. Setzen Sie den Benutzer quickhmi als Besitzer des Ordners QuickHMIServer.sudo chown quickhmi "QuickHMIServer Lynx" | |
| X | X | 9. Erstellen Sie einen symbolischen Link zur Datei /home/quickhmi/QuickHMIServer/qhmiRM.sh nach /usr/bin/qhmiRM .sudo ln -sf "/home/quickhmi/QuickHMIServer Lynx/qhmiRM.sh" /usr/bin/qhmiRM | |
| X | X | X | 10. Kopieren Sie den Ordner /home/quickhmi/QuickHMIServer Lynx/usr/ nach /usr/. Mit dem Befehl cp -a wird dabei der Ordner mit allen Inhalten kopiert. Wichtig bei diesem Befehl ist der / nach Angabe des Quellverzeichnisses! sudo cp -a "QuickHMIServer Lynx/usr/." /usr/ |
| X | X | X | 11. Den Ordner /home/quickhmi/QuickHMIServer Lynx/usr können Sie nun löschen. Er wird hier nicht mehr benötigt.sudo rm -rf "QuickHMIServer Lynx/usr" |
| X | X | X | 12. Kopieren Sie den Ordner /home/quickhmi/QuickHMIServer Lynx/etc/ nach /etc/. Mit dem Befehl cp -a wird dabei der Ordner mit allen Inhalten kopiert. Wichtig bei diesem Befehl ist der / nach Angabe des Quellverzeichnisses! sudo cp -a "QuickHMIServer Lynx/etc/." /etc/ |
| X | X | X | 13. Den Order /home/quickhmi/QuickHMIServer Lynx/etc können Sie nun löschen. Er wird hier nicht mehr benötigt.sudo rm -rf "QuickHMIServer Lynx/etc" |
*1 Neuinstallation: Erste Installation von QuickHMI.
*2 Update: Installation einer anderen Version innerhalb der gleichen Hauptversion.
*3 Upgrade: Installation einer neuen Hauptversion (z.B. Lynx) nachdem die zuvor installierte Hauptversion (z.B. Jellyfish) deinstalliert wurde.
Damit ist die Installation abgeschlossen.
Wechseln Sie jetzt in den Ordner für QHMI:
cd /home/quickhmi/QuickHMIServer Lynx
Eine Auflistung über alle möglichen Befehle bekommen Sie mit:
sudo qhmiRM
Nachfolgend werden die möglichen Befehle aufgeführt:
| Command | Text |
| -r | QuickHMI Konsolen runtime Manager wird gestartet |
| -rg | QuickHMI runtime manager GUI wird gestartet |
| -rd | startet den QuickHMI Server |
| -sd | stoppt den QuickHMI Server |
| -i | Direkter Import einer QuickHMI ExportDatei in den Server. Kann zusammen mit dem -instance (instance_ID) argument verwendet werden |
| -v | zeigt die aktuell installierte Version |
| -u | Startet den Aktualisierungs-Prozess |
| -start | Startet manuell eine Instanz. Muss zusammen mit dem Argument für die Instanz verwendet werden (-instance instance_ID) |
| -stop | Stoppt eine Instanz. Muss zusammen mit dem Argument für die Instanz verwendet werden (-instance instance_ID) |
Die Beschreibung des grafischen Runtime-Managers erfolgt hier https://docs.quickhmi.com/dokumentation/runtime-manager/der-quickhmi-runtime-manager/
Im ersten Schritt sollte ein Projekt über die Export-Datei importiert werden.
sudo qhmiRM -i Testprojekt1.qexp
Nach Auswahl einer laufenden Instanz oder der Erstellung einer neuen Instanz wird das Projekt importiert.
Starten lässt sich die Laufzeit dann mit:
sudo qhmiRM -rd
ℹ️ Hinweis: Version 15 ist noch nicht veröffentlicht. Diese Anleitung beschreibt die Installation ab Version 15 und gilt erst mit deren Erscheinen.
Voraussetzungen
Ab Version 15 bringt das Linux-Paket seine eigene Java-Laufzeitumgebung mit. Eine Java-Installation und das Paket openjfx sind nicht mehr nötig.
- 64-Bit-Linux mit systemd und glibc. Geprüft sind Debian, Ubuntu und Raspberry Pi OS (64-Bit). Alpine Linux wird nicht unterstützt, auch nicht als Basis für Container.
- root-Rechte beziehungsweise
sudo. - Für den grafischen Runtime Manager (
qhmiRM -rg) eine Desktop-Umgebung oder X-Forwarding. Der Konsolen-Runtime-Manager kommt ohne aus.
Prüfen Sie zuerst die Architektur des Betriebssystems:
uname -m
Erwartet wird x86_64 oder aarch64. Meldet der Befehl armv7l, läuft ein 32-Bit-Betriebssystem, auch wenn die Hardware 64-Bit-fähig ist. Das ist beim Raspberry Pi häufig der Fall. Installieren Sie dann zuerst ein 64-Bit-Betriebssystem. Weitere Angaben finden Sie in den Systemvoraussetzungen.
Paketquelle einrichten (empfohlen)
Richten Sie die QuickHMI-Paketquelle einmalig ein, dann installieren und aktualisieren Sie die Runtime wie jedes andere Programm Ihres Systems. Sie müssen nichts mehr von Hand herunterladen, und Ihr System prüft bei jeder Installation die Echtheit und die Unversehrtheit der Pakete.
sudo install -d -m 0755 /etc/apt/keyrings
sudo wget -O /etc/apt/keyrings/quickhmi-archive-keyring.gpg https://www.indi-an.com/linux/apt/quickhmi-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/quickhmi-archive-keyring.gpg] https://www.indi-an.com/linux/apt stable main" | sudo tee /etc/apt/sources.list.d/quickhmi.list
sudo apt update
Danach installieren Sie die Runtime mit einem einzigen Befehl. Die passende Architektur wählt Ihr System selbst, Sie müssen sie nicht angeben.
sudo apt install quickhmi-Version_M
Der heruntergeladene Schlüssel ist der öffentliche Teil unseres Signaturschlüssels; damit erkennt Ihr System, dass die Pakete von uns stammen und unterwegs nicht verändert wurden. Wenn Sie ihn überprüfen möchten, zeigt der folgende Befehl seinen Fingerabdruck an. Er muss lauten: 7013 57CF EB09 75E1 1464 C0C6 30F0 32E5 BDA3 3B1F.
gpg --show-keys /etc/apt/keyrings/quickhmi-archive-keyring.gpg
Die Paketquelle enthält ausschließlich die QuickHMI Runtime. Ihr übriges System ist davon nicht betroffen, und automatische Systemaktualisierungen fassen die Runtime nicht an: Ein Update ist immer eine bewusste Entscheidung. Wie Sie später aktualisieren, beschreibt die Seite Update.
Ohne Paketquelle: Paket herunterladen
Hat das System keinen Zugang zu unserem Server oder möchten Sie die Paketquelle nicht eintragen, laden Sie das passende Paket einmalig herunter und installieren es aus der Datei. Die folgenden Abschnitte beschreiben diesen Weg.
Paket wählen
Für Debian, Ubuntu und Raspberry Pi OS ist das .deb-Paket der Standardweg. Für andere Distributionen mit systemd gibt es das Archiv (.tar.gz) mit Installationsskript. Beide Wege richten dasselbe ein.
Ausgabe von uname -m | .deb-Paket | Archiv |
x86_64 | quickhmi-Version_M_amd64.deb | quickhmi-Version_M-linux-x64.tar.gz |
aarch64 | quickhmi-Version_M_arm64.deb | quickhmi-Version_M-linux-aarch64.tar.gz |
Die Dateinamen tragen keine Versionsnummer und liefern immer den aktuellen Stand. Zu jeder Datei gibt es eine Prüfsummendatei mit der Endung .sha256. Sie finden die Pakete auch auf der Download-Seite. Bereitgestellt wird immer der aktuelle Stand; ältere Versionen werden nicht zum Herunterladen angeboten.
Installation mit dem .deb-Paket
Die folgenden Befehle laden das Paket und die Prüfsumme herunter, prüfen die Datei und installieren sie. Das Beispiel gilt für x86_64; auf aarch64 ersetzen Sie amd64 durch arm64.
wget https://www.indi-an.com/linux/Version_M/quickhmi-Version_M_amd64.deb
wget https://www.indi-an.com/linux/Version_M/quickhmi-Version_M_amd64.deb.sha256
sha256sum -c quickhmi-Version_M_amd64.deb.sha256
sudo apt install ./quickhmi-Version_M_amd64.deb
Das ./ vor dem Dateinamen ist Pflicht, sonst sucht apt das Paket in den Paketquellen statt im aktuellen Verzeichnis. Anstelle von wget können Sie die Dateien auch auf einem anderen Rechner herunterladen und auf das Linux-System kopieren.
Installation mit dem Archiv
Das Beispiel gilt für x86_64; auf aarch64 ersetzen Sie x64 durch aarch64.
wget https://www.indi-an.com/linux/Version_M/quickhmi-Version_M-linux-x64.tar.gz
wget https://www.indi-an.com/linux/Version_M/quickhmi-Version_M-linux-x64.tar.gz.sha256
sha256sum -c quickhmi-Version_M-linux-x64.tar.gz.sha256
mkdir quickhmi-Version_M
tar xzf quickhmi-Version_M-linux-x64.tar.gz -C quickhmi-Version_M --strip-components=1
cd quickhmi-Version_M
sudo ./install.sh
Das Installationsskript prüft die Architektur, legt das Dienstkonto an, richtet den Dienst ein und meldet am Ende die installierte Version, die Java-Version und die Pfade.
Was die Installation anlegt
| Ort | Inhalt |
/opt/quickhmi/Version_M | Programm und Java-Laufzeitumgebung. Wird bei einem Update ersetzt, nehmen Sie hier keine Änderungen vor. |
/var/lib/quickhmi/Version_M | Instanzen, Projekte, server.cfg, Zertifikate und eigene JDBC-Treiber unter jdbc_driver/user. Bleibt bei einem Update erhalten. |
/var/log/quickhmi/Version_M | Logdateien der Instanzen. |
Dienst quickhmi-Version_M | systemd-Dienst, der beim Booten alle Instanzen mit aktiviertem Autostart startet. Jede Instanz läuft als eigener Dienst quickhmi-Version_M@<ID>. |
Konto quickhmi | Systemkonto ohne Passwort und ohne Shell, unter dem die Instanzen laufen. |
/usr/bin/qhmiRM | Der Befehl qhmiRM, aus jedem Verzeichnis aufrufbar. |
Eine vorhandene Installation von QuickHMI Lynx bleibt unberührt und läuft parallel weiter. Projekte werden nicht übernommen: Exportieren Sie das Projekt mit dem Editor für Version 15 erneut und importieren Sie es wie unten beschrieben. Zum Entfernen von Lynx siehe Deinstallation.
Erste Schritte
Übertragen Sie den Projektexport (.qexp) aus dem Editor auf das Linux-System, zum Beispiel mit scp oder WinSCP, und importieren Sie ihn in eine Instanz:
sudo qhmiRM -i Testprojekt1.qexp -instance=1
Ohne die Angabe -instance= fragt der Import nach der Instanz-ID. Weitere Rückfragen gibt es nicht; neue Sicherheitsdefinitionen (Benutzer und Gruppen) aus dem Export werden übernommen. Anschließend läuft die Instanz als Dienst quickhmi-Version_M@1 und ist über den im Projekt konfigurierten Port erreichbar. Den Zustand zeigt:
systemctl status quickhmi-Version_M@1
Befehle von qhmiRM
Alle Befehle benötigen root-Rechte, rufen Sie sie mit sudo auf. Ein Aufruf ohne Argument zeigt die Übersicht:
sudo qhmiRM
| Befehl | Wirkung |
-r | Startet den Konsolen-Runtime-Manager. |
-rg | Startet den grafischen Runtime Manager. |
-rd | Startet den Dienst und damit alle Instanzen mit aktiviertem Autostart. |
-sd | Stoppt den Dienst und damit alle Instanzen. |
-i <Datei.qexp> | Importiert einen Projektexport. Optional mit -instance=<ID> für eine bestimmte Instanz. |
-v | Zeigt Paketversion, Revision und Java-Version. |
-u | Wendet ein ausstehendes Update aus einem Projektexport erneut an. |
-start -instance=<ID> | Startet eine einzelne Instanz. |
-stop -instance=<ID> | Stoppt eine einzelne Instanz und schaltet ihren Autostart aus. |
Die Beschreibung des grafischen Runtime Managers finden Sie unter Der QuickHMI Runtime Manager.
