Installation

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.

Installieren einer anderen Major-Version

Eine abweichende Major-Version von QuickHMI kann installiert werden, wenn in folgenden Skript-Ausschnitten alle vorkommen von „Lynx“ durch die entsprechende andere Version ersetzt werden.

Wenn bereits eine andere QuickHMI Version installiert ist, muss diese zuvor deinstalliert werden. Die notwendigen Schritte dazu sind hier dokumentiert.

Neuinstallation *1Update *2Upgrade *3
X1. Deinstallation der Vorgängerversion.
Deinstallation
X1. 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
X2. Falls Sie den grafischen RuntimeManager nutzen wollen, installieren Sie openjfx. Anderenfalls können Sie diesen Schritt überspringen.
sudo apt-get install openjfx
X3. Legen Sie einen neuen Nutzer quickhmi mit dem Passwort indi an. Dieser Nutzer wird genutzt, um den QuickHMI Server zu starten.
username="quickhmi"
       password="indi"
       pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
       sudo useradd -m -p $pass $username
XXX4. Wechseln Sie in den Ordner „/home/quickhmi“.
cd /home/quickhmi
XXX5. 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
XXX6. Entpacken Sie das QuickHMI Server Paket nach /home/quickhmi.
sudo tar -xvf QuickHMIServer.tar

Sie sollten jetzt folgende Ordnerstruktur vorfinden: /home/quickhmi/QuickHMIServer Lynx
XXX7. Löschen Sie das QuickHMI Server Paket.
sudo rm QuickHMIServer.tar
XX8. Setzen Sie den Benutzer quickhmi als Besitzer des Ordners QuickHMIServer.
sudo chown quickhmi "QuickHMIServer Lynx"
XX9. 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
XXX10. 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/
XXX11. 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"
XXX12. 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/
XXX13. 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:

CommandText
-rQuickHMI Konsolen runtime Manager wird gestartet
-rgQuickHMI runtime manager GUI wird gestartet
-rdstartet den QuickHMI Server
-sdstoppt den QuickHMI Server
-iDirekter Import einer QuickHMI ExportDatei in den Server. Kann zusammen mit dem -instance (instance_ID) argument verwendet werden
-vzeigt die aktuell installierte Version
-u Startet den Aktualisierungs-Prozess
-startStartet manuell eine Instanz. Muss zusammen mit dem Argument für die Instanz verwendet werden (-instance instance_ID)
-stopStoppt 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-PaketArchiv
x86_64quickhmi-Version_M_amd64.debquickhmi-Version_M-linux-x64.tar.gz
aarch64quickhmi-Version_M_arm64.debquickhmi-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

OrtInhalt
/opt/quickhmi/Version_MProgramm und Java-Laufzeitumgebung. Wird bei einem Update ersetzt, nehmen Sie hier keine Änderungen vor.
/var/lib/quickhmi/Version_MInstanzen, Projekte, server.cfg, Zertifikate und eigene JDBC-Treiber unter jdbc_driver/user. Bleibt bei einem Update erhalten.
/var/log/quickhmi/Version_MLogdateien der Instanzen.
Dienst quickhmi-Version_Msystemd-Dienst, der beim Booten alle Instanzen mit aktiviertem Autostart startet. Jede Instanz läuft als eigener Dienst quickhmi-Version_M@<ID>.
Konto quickhmiSystemkonto ohne Passwort und ohne Shell, unter dem die Instanzen laufen.
/usr/bin/qhmiRMDer 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
BefehlWirkung
-rStartet den Konsolen-Runtime-Manager.
-rgStartet den grafischen Runtime Manager.
-rdStartet den Dienst und damit alle Instanzen mit aktiviertem Autostart.
-sdStoppt den Dienst und damit alle Instanzen.
-i <Datei.qexp>Importiert einen Projektexport. Optional mit -instance=<ID> für eine bestimmte Instanz.
-vZeigt Paketversion, Revision und Java-Version.
-uWendet 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.