Подключение к серверам и рабочим станциям Microsoft Windows в режиме «удаленного рабочего стола» (RDP) является главной возможностью тонкого клиента, в основе которой лежит FreeRDP - лучший на сегодняшний день кроссплатформенный клиент удаленного доступа.
В проекте применяется оригинальная сборка (компиляция) FreeRDP:
Очень удобно использовать выделенную (виртуальную) рабочую станцию для сборки клиента:
OS: Аналогичная тонким клиентам, в минимальной конфигурации (можно без GUI) RAM: 512MB SWAP: 512MB HDD: 4GB
Подключенные репозитории:
repo id repo name ------------------------------------------------------------------------ appstream OS 8 - AppStream baseos OS 8 - BaseOS powertools OS 8 - PowerTools/CodeReady Builder epel Extra Packages for Enterprise Linux 8 - x86_64 rpmfusion-free-updates RPM Fusion for EL 8 - Free - Updates
dnf install git tar cmake make gcc-c++
Выясняются при анализе ошибок компиляции и (до)устанавливаются:
alsa-lib-devel cairo-devel ffmpeg-devel libusb-devel libX11-devel libXcursor-devel libXi-devel libXinerama-devel libxkbcommon-devel libxkbfile-devel libXrandr-devel libXv-devel openssl-devel pcsc-lite-devel pulseaudio-libs-devel systemd-devel wayland-devel zlib-devel
xorg-x11-xauth
Скрипт-шаблон выполняющий всю работу:
#!/bin/bash rm -rf FreeRDP ################################################# #git clone https://github.com/FreeRDP/FreeRDP.git #tar czf FreeRDP.tgz FreeRDP #exit ################################################# tar xf FreeRDP.tgz cd FreeRDP echo $(grep RAW_VERSION_STRING CMakeLists.txt | head -1 | cut -d \" -f 2 | cut -d - -f 1)-zmb-$(date +%Y%m%d) > .source_tag cmake -Wno-dev \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_INSTALL_PREFIX=$(pwd) \ -DWITH_CUPS=OFF \ -DWITH_MANPAGES=OFF \ -DWITH_CAIRO=ON \ -DWITH_GSSAPI=OFF \ -DWITH_FUSE=OFF \ . | tee ../compile.log #exit make make install
Для ускорения работы можно перейти в каталог /dev/shm
:
cd /dev/shm ln -fsv /path/to/compile.exe ./compile.exe
Результат:
FreeRDP/bin/xfreerdp /version This is FreeRDP version 3.0.0-zmb-20210417 (8cd61a01f)