Citrix Client for Linux installieren

Home‑Office oder auch Heimarbeitsplatz bzw. Remote-Zugang ist in vielen "Schreibtisch‑Berufen" nicht zuletzt seit der Corona/COVID‑19 Pandemie ein Thema. In vielen Fällen wird der Zugang über eine Citrix‑Lösung bereitgestellt. Die nachfolgenden Schritte helfen bei der Installation der benötigten Software Citrix Workspace App und der HDX Media RealTime Engine unter Linux Mint, die an manchen Stellen nicht so einfach "out‑of‑the‑box" verläuft, wie unter anderen direkt unterstützten Linux Distributionen (bspw. Red Hat oder Ubuntu).

Aber keine Sorge - ist alles kein Hexenwerk.

Citrix Workspace App installieren

Mit der Citrix Workspace App (früher auch Citrix Client, ICA Client oder Citrix Receiver genannt) wird die Verbindung zu den Citrix Servern des Anbierters der Remote-Zugangs hergestellt. Je nach Ausprägung kann man darüber einzelne Anwendungen starten, die dann fast wie Programme auf dem eigenen Rechner verhalten - oder man landet auf einem Desktop, der sich dann ähnlich verhält, wie ein vollwertiger Rechner vor Ort. In beiden Fällen laufen die gestarteten Programme tatsächlich auf dem Server. Ihr Client (PC oder Notebook) kümmert sich in erster Linie nur um Aus- und Eingabe der Daten. Die Rechenleistung wird auf dem Server "verheizt".

Download-Seite bei Citrix.com:
https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html

# Herausfinden, ob / welche Version der Citrix Workspace App installiert ist
$ apt list --installed icaclient ctxusb

# Citrix Workspace App inkl. Abhängigkeiten installieren
$ sudo apt install -y -f ~/Downloads/icaclient_<version>._amd64.deb

# USB Support Package installieren
$ sudo apt install -y -f ~/Downloads/ctxusb_<version>._amd64.deb

Mit dem nun erreichten Stand kann man schon mal via Citrix arbeiten. Was ist, wenn auch telefonieren oder multimediale Inhalte streamen möchte? In älteren Versionen der Citrix Workspace App musste dafür ein zusätzliches Paket HDX Media RealTime Engine heruntergeladen und installiert werden. (siehe auch Abschnitt HDX Media RealTime Engine installieren).

Inzwischen (mind. seit Version 22) ist es schon mit dabei. Ein paar Bibliotheken fehlen aber ggf. noch für die volle Funktionalität. Die Überprüfung und Nachinstallation ist nachfolgend beschrieben.

# Abhängigkeiten der HDX RealTime Media Engine überprüfen / korrigieren
$ ldd /opt/Citrix/ICAClient/util/HdxRtcEngine | grep -i "not found"
	  libc++.so.1 => not found
	  libunwind.so.1 => not found
	  libc++abi.so.1 => not found

$ sudo apt-get install -y libc++1 libgtkglext1 pcscd clang ttf-bitstream-vera

# Überprüfung der Citrix Workspace App inkl. aller Teilmodule
$ /opt/Citrix/ICAClient/util/workspacecheck.sh

User CITRIXLOG vom Anmeldebildschirm entfernen

Nach der Installation der Citrix Workspace App erscheint auf dem Linux Anmeldebildschirm plötzlich der User citrixlog. Der ist meiner Ansicht nach etwas störend. Insbesondere, wenn man alleiniger Nutzer des Systems ist.

Das Löschen des Users wird nicht empfohlen, da dann die Fehlerprotokollierung der Citrix Workspace App nicht mehr funktioniert. Falls man es doch tun möchte, würde ich empfehlen, den Citrix Log Daemon ctxlogd zu stoppen und zu deaktivieren, bevor man sich von dem User verabschiedet. Das dürfte unschöne Fehler im Systemlog vermeiden.

Eine etwas sanftere Lösung möchte ich hier vorstellen: Den User citrixlog zum Systemuser erklären. Systemuser werden im Anmeldebildschirm nicht angezeigt und zeichnen sich dadurch aus, dass sie eine User ID unterhalb von 1000 haben.

# Citrix Log Daemon(s) stoppen
# Kann je nach Version der Citrix Workspace App bzw. den installierten Komponenten variieren.
$ sudo systemctl stop ctxlogd
$ sudo systemctl stop ctxcwalogd
$ sudo systemctl stop ctxusbd

# Aktuelle User ID des Benutzers citrixlog ermitteln
$ sudo id citrixlog   # --> uid=1001(citrixlog) gid=1001(citrixlog) Gruppen=1001(citrixlog)

# Nach einer freien User ID für Systemuser suchen
$ sudo id 999         # --> id: »999“: Einen solchen Benutzer gibt es nicht

# Anpassung der Gruppen ID (hier auf die als frei ermittelte 999)
$ sudo groupmod -g 999 citrixlog

# Anpassung der User ID und der Standardgruppen ID (hier auf die als frei ermittelte 999)
$ sudo usermod -u 999 -g 999 citrixlog

# Überprüfung der Änderung
$ sudo id citrixlog   # --> uid=999(citrixlog) gid=999(citrixlog) Gruppen=999(citrixlog)

# Citrix Log Daemon starten
$ sudo systemctl start ctxlogd
$ sudo systemctl start ctxcwalogd
$ sudo systemctl start ctxusbd

HDX Media RealTime Engine installieren

Mit der zunehmenden Verbreitung von Skype / Teams for Business stieg der Bedarf an der Übertragung von Multimedia-Daten, insbesondere Ton und Video für virtuelle Audio-/Videokonferenzen. Dafür war das ursprüngliche Citrix Protokoll nicht ausgelegt. Eine optimierte Unterstützung liefert hier die HDX Media RealTime Engine. Sie ist nicht Bestandteil der Citrix Workstation App, sondern muss als eigenes Paket installiert werden.

Download-Seite bei Citrix.com:
https://www.citrix.com/downloads/workspace-app/additional-client-software/hdx-realtime-media-engine.html

LinuxMint wird vom HDX Engine Installer nicht direkt unterstützt. Durch die nahe Verwandschaft mit Ubuntu kann man aber etwas nachhelfen, damit es auch unter LinuxMint läuft. Folgende Schritte sollten nach dem Download und Entpacken des Installationspakets HDX_RealTime_Media_Engine_<VersionsNr>_for_Linux_x64.zip durchgeführt werden:

# Verzeichnis des HDX Installers aufrufen
$ cd ~/Downloads/Citrix/HDX_RealTime_Media_Engine_<VersionsNr>_for_Linux_x64

# Ubuntu durch LinuxMint ersetzen
$ sed -i 's/Ubuntu/LinuxMint/g' HDXRTME_install.sh

# Skript ausführbar machen
$ chmod +x HDXRTME_install.sh

# Installer aufrufen
$ sudo ./HDXRTME_install.sh

# Abhängigkeiten der HDX RealTime Media Engine überprüfen / korrigieren
$ ldd /opt/Citrix/ICAClient/util/HdxRtcEngine | grep -i "not found"
	  libc++.so.1 => not found
	  libunwind.so.1 => not found
	  libc++abi.so.1 => not found
# Paket libc++1 nachinstallieren. Dies behebt für die o.g.
# abhängigen Pakete gleich alle Probleme auf einmal.
$ sudo apt-get install libc++1

# An dieser Stelle nicht zwingend notwendig, aber da oft in anderen Programmen 
# mit libc++ Verwendung benötigt, würde ich auch das vorgeschlagene Paket clang 
# und den dort vorgeschlagenen Font Bitstream Vera ebenfalls installieren.
$ sudo apt-get install clang
$ sudo apt-get install ttf-bitstream-vera

# Alternativer Fix, falls nur libunwind.so.1 => not found das Problem ist:
# Link für fehlende Library libunwind.so.1 auf neuere Version libunwind.so.8 setzen
# Vgl. https://support.citrix.com/article/CTX339933/citrix-workspace-for-linux-on-linux-mint-hdx-optimization-fails-for-ms-teams-published-app
$ sudo ln -s /lib/x86_64-linux-gnu/libunwind.so.8 /lib/x86_64-linux-gnu/libunwind.so.1

Nach diesen Schritten sollten die meisten mit über Citrix bereitgestellten Anwendungen arbeiten können.

Als Möglichkeit zum Troubleshooting gibt es noch das mit der Citrix Workspace App mitgelieferte Skript workspacecheck.sh. Dies zeigt an, ob es noch zu lösende Abhängigkeiten gibt.

In meinem Fall gab es noch von mir nicht benötigte Module aufzulösende Abhängigkeiten.

  • SaaS App Support
  • Smartcard Support

Die sind aber optional - sofern man die Funktionen nicht benötigt.

Mit den nachfolgenden Paketen können auch diese Abhängigkeiten aufgelöst werden:

# Aufruf des Pre-requisite check for the Citrix Workspace for Linux
$ /opt/Citrix/ICAClient/util/workspacecheck.sh

# Nachinstallation benötigter Pakete für SaaS App Support
$ sudo apt-get install libgtkglext1

# Nachinstallation benötigter Pakete für Smartcard Support
$ sudo apt-get install pcscd

Citrix Tastatur-Layout korrigieren

Bei manchen Kombinationen zwischen Citrix Client (Workstation App) und Linux Betriebssystem kann es vorkommen, dass manche Tastendrücke falsch übertragen wurden. So wurden bei mir bspw. die meisten über die SHIFT-Taste erreichbaren Sonderzeichen innerhalb der Citrix-Session als großes Ö wiedergegeben, während sie unter Linux die gewünschten Zeichen (z. B. Semikolon oder Doppelpunkt) normal funktionierten.

Da mir dieses Verhalten früher nicht aufgefallen ist, vermute ich ein Problem bei der automatischen Erkennung des Tastaturlayouts in der Kombination der Citrix Receiver Version (13) und Linux Mint (ebenfalls Version 13/Maya).

Das Problem ließ sich durch das Bearbeiten der Citrix Receiver Konfigurationsdatei ~/.ICAClient/wfclient.ini beheben. Der Wert für KeyboardLayout muss fest auf das passende Tastatur-Layout eingestellt werden. In meinem Fall musste für das deutsche Layout "GERMAN" angegeben werden.

# Citrix Tastatur-Layout korrigieren
$ sed -i 's/KeyboardLayout.*/KeyboardLayout = GERMAN/g' ~/.ICAClient/wfclient.ini