Guacamole is a web-based remote desktop, easy to use and a little hard to install for the first time. Guacamole has 2 part, first the server part which can installed on any server, and the client which should installed on every client.
With the new release Guacamole has new or improved features, such as:
– Single sign-on with SAML 2.0
– Wake-on-LAN
– Easy switching between multiple connections
– Improved login behavior
– Using TOTP with non-database user accounts
– Granular control of clipboard and file transfer
– Support for SSL/TLS database connections
– Support for the MariaDB JDBC driver
Update apt
Update the apt
package manager metadata, for fresh new server created from template sometimes, it may have been delete the apt cache to reduce the disk size, or the server never updated before, the next command may failed.
sudo apt update
Install Dependency
Install dependencies for guacamole instalation
sudo apt install -y build-essential libcairo2-dev libjpeg-turbo8-dev libpng-dev \ libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev \ freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev \ libssl-dev libvorbis-dev libwebp-dev
Download Guacamole
Download the latest version of Guacamole from the official website. Right now, the latest version is 1.2.0.
wget "https://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.2.0/source/guacamole-server-1.2.0.tar.gz" -O guacamole-server-1.2.0.tar.gz
sometimes the download server really slow, you can repeat the download few times, to start from the already downloaded part add -c
after wget command
Extract Guacamole source code
tar zxvf 1.2.0.tar.gz
it’ll create folder guacamole-server-1.2.0, move working directory to this folder
cd guacamole-server-1.2.0
Generate Configure
autoconf -i
It will generate executeable configure script
Run configure script
./configure --with-init-dir=/etc/init.d
wait a moment until finish
------------------------------------------------ guacamole-server version 1.2.0 ------------------------------------------------ Library status: freerdp2 ............ yes pango ............... yes libavcodec .......... yes libavformat.......... yes libavutil ........... yes libssh2 ............. yes libssl .............. yes libswscale .......... yes libtelnet ........... yes libVNCServer ........ yes libvorbis ........... yes libpulse ............ yes libwebsockets ....... yes libwebp ............. yes wsock32 ............. no Protocol support: Kubernetes .... yes RDP ........... yes SSH ........... yes Telnet ........ yes VNC ........... yes Services / tools: guacd ...... yes guacenc .... yes guaclog .... yes FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2 Init scripts: no Systemd units: no Type "make" to compile guacamole-server.
Compile Guacamole Server
This compile process will take some time, the speed depends on the Processor and available memory of the server.
make
Install Guacamole Server
Finally install the guacamole server, this step will need sudo access.
sudo make install
Start Guacamole Server
To start using the guacamole server, first start the service
sudo /etc/init.d/guacd start
With guacamole version 1.5.5 I had problems starting the guacamole server:
Starting guacd: /usr/local/sbin/guacd: error while loading shared libraries: libguac.so.24: cannot open shared object file: No such file or directory
I had to reload libraries:
sudo ldconfig
After that, it started like charm