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

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

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 stoppen
sudo systemctl stop ctxlogd

# 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