Установка Citrix Workspace app на любой Linux c помощью distrobox
Установка distrobox
distrobox - это проект с открытым исходным кодом, который позволяет дополнить ваш любимый дистрибутив линукса изолированным окружением в виде набора программ и библиотек какого-то другого стандартного дистрибутива, занимая при этом незначительное место на диске, даже в сравнении с технологиями flatpak и snap, не говоря уже о тяжеловесной виртуализации.
В данной статье описано, как установить на Arch Linux (KDE Plasma 6 + wayland) программу, предназначенную для другого дистрибутива, распространяемому в виде пакетов DEB или RPM, или которого нет в репозитории AUR, либо цель состоит в пользовании программой в стабильном энтерпрайз-окружении.
В качестве хоста можно использовать любой другой дистрибутив кроме Арча, список поддерживаемых можно найти по этой ссылке. Если любимого дистрибутива там нет, то можно попытаться собрать distrobox из исходников.
Под капотом distrobox используется podman, поэтому нужно установить и его:
host> sudo pacman -S podman distrobox
Установка гостевой системы
Так как статья посвящена Citrix Workspace app, то перед выбором гостевой системы очевидно нужно изучить список поддерживаемых ОС на сайте разработчика: System requirements and compatibility. Я сэкономлю вам время и сразу скажу, что на момент написания статьи для текущей версии 2411 приложения Citrix наиболее беспроблемным является более старый RHEL 8, поэтому будем ставить его аналог Rocky Linux 8. Можете поэкспериментировать и с актуальной 9-ой версией, но поверьте, будет работать хуже.
host> distrobox create -n rocky8 -i quay.io/toolbx-images/rockylinux-toolbox:8
На этапе установки можно заметить, что для гостевой системы скачался смехотворный размер всего несколько сотен мегабайт. Зайдем в дистрибутив для начальной настройки, первый заход может быть долгим:
host> distrobox enter rocky8
# теперь мы внутри гостевой системы. обновляемся:
guest> sudo dnf update
# для запуска через VDI нам нужен будет браузер:
guest> sudo dnf install firefox
# чтобы запускать браузер гостевой системы как обычные программы, создадим ярлык запуска:
guest> distrobox-export --app firefox
Базовая работа выполнена. На данном этапе вы можете запускать стабильный Firefox ESR с долговременной поддержкой на изолированной гостевой системе, которая заявлена как полный аналог Enterprise Linux. Это очень хорошо для выполнения работ, которые приносят вам денежный доход, но при этом вы сохраняете возможность во всём остальном оставаться на передовом и "нестабильном" Арче, а не "тухлом энтерпрайзе".
Изоляция по умолчанию не полная - гостевая система имеет доступ на чтение и запись к профилю текущего пользователя. Но это по умолчанию и можно настроить ограничение - нам же это не требуется.
Ещё полезные команды:
# Список гостевых ОС:
host> distrobox list
ID | NAME | STATUS | IMAGE
c8c78844e4c0 | rocky8 | Up 3 hours | quay.io/toolbx-images/rockylinux-toolbox:8
# Удалить гостевую ОС со всеми установленными программами:
host> distrobox rm rocky8
Установка и настройка Citrix Workspace app, версия 2411
Скачать программу можно здесь (доступ для РФ заблокирован, но если сильно захотеть то получить можно). Нам нужно скачать Full package из раздела RPM, для x86_64. Папка загрузок видна одинаково на хосте и гостевой системе, поэтому не имеет значения каким браузером скачивать.
# установка в гостевой системе:
guest> sudo dnf install ICAClient-rhel-24.11.0.85-0.x86_64.rpm
Если клиент Citrix запускается из браузера через VDI, то выводить ярык не требуется. Сертификат сервера нужно положить простым копированием в каталог /opt/Citrix/ICAClient/keystore/cacerts
Перед использованием нужно проверить качество установки скриптом:
guest> cd /opt/Citrix/ICAClient/util
guest> sudo ./workspacecheck.sh
Красным цветом будут обозначены проблемы, их у нас много, поэтому нужно доустановить следующие пакеты:
guest> sudo dnf install libcanberra-gtk3 libinput gtkglext-libs libXScrnSaver libunwind
На libc++ и поддержку смарткарт проверялка будет продолжать ругаться, но проблем в связи с этим не было замечено.
Фишки новой версии Citrix Workspace app, версия 2411
Раскладка клавиатуры - используется системная от хоста. Т.е. даже в гостевом рабочем столе Windows будет работать переключение по клавише Caps, если вы его настроили в своем линуксе. И даже в полноэкранном режиме.
Автомасштабирование экрана, актуально для мониторов 2.5К и 4К:
Решения проблем
1. Некачественный звук в мессенджерах Microsoft (Skype for Business, Teams): возможно требуется установка кодека HDX RealTime Media. Также без данного кодека может не работать микрофон. Программа старая, требует pulseaudio, но во всех современных дистрибутивах используется pipewire, который обратно совместим с pulseaudio. Нужно просто отключить проверку, закомментировав две строки в исполняемом файле установщика HDXRTME_install.sh:
checkPulseAudio()
{
# is the daemon running?
if ps -A | grep -qw "pulseaudio"; then
echo "$HDXRTME_install_pulsesupported"
echo ''
else
echo ''
echo "$HDXRTME_install_pulsenotrunning"
# terminateInstallation
# exit 1
fi
}
Также потребуется предварительная установка пакета:
guest> sudo dnf install xvinfo
2. Жор ядра CPU 100%: если вы замечаете, что при работе Citrix Workspace app наблюдается 100% загрузка одного ядра процессом wfica, то лечение состоит в чистке папки кэша. Такое случается если зайти в свою сессию из другого компьютера - это как-то связано с выводом звука, но технических деталей я не знаю. Удалите всё из каталога ~/.ICAClient и полностью перезапустите удалённый рабочий стол, а также желательно свой компьютер. Если ничего не помогает, то попробуйте поменять ядро linux на другую версию.
3. Не работает Ctrl-C Ctrl-V: строго говоря - вообще не работает клавиша Ctrl. Для лечения нужно подредактировать файл ~/.ICAClient/wfclient.ini (при этом автоопределение раскладки клавиатуры продолжит нормально работать):
[WFClient]
Version = 2
#KeyboardLayout = (User Profile) - закомментировать
KeyboardLayout = US-International