2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
About this README
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
This README is intended to provide quick and to-the-point documentation for
|
2016-10-27 04:57:07 +00:00
|
|
|
technical users intending to compile parts of Apache Guacamole themselves.
|
2013-06-05 21:33:43 +00:00
|
|
|
|
2016-10-27 05:09:06 +00:00
|
|
|
Source archives are available from the downloads section of the project website:
|
|
|
|
|
2017-12-06 08:25:05 +00:00
|
|
|
http://guacamole.apache.org/
|
2016-10-27 05:09:06 +00:00
|
|
|
|
|
|
|
A full manual is available as well:
|
2013-06-05 21:33:43 +00:00
|
|
|
|
2017-12-06 08:25:05 +00:00
|
|
|
http://guacamole.apache.org/doc/gug/
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
2013-06-05 21:59:57 +00:00
|
|
|
What is guacamole-server?
|
2013-06-05 21:33:43 +00:00
|
|
|
------------------------------------------------------------
|
|
|
|
|
2013-06-05 21:59:57 +00:00
|
|
|
The guacamole-server package is a set of software which forms the basis of the
|
|
|
|
Guacamole stack. It consists of guacd, libguac, and several protocol support
|
|
|
|
libraries.
|
|
|
|
|
2013-06-05 21:33:43 +00:00
|
|
|
guacd is the Guacamole proxy daemon used by the Guacamole web application and
|
|
|
|
framework. As JavaScript cannot handle binary protocols (like VNC and remote
|
2018-06-17 16:40:59 +00:00
|
|
|
desktop) efficiently, a new text-based protocol was developed which would
|
2013-06-05 21:59:57 +00:00
|
|
|
contain a common superset of the operations needed for efficient remote desktop
|
|
|
|
access, but would be easy for JavaScript programs to process. guacd is the
|
|
|
|
proxy which translates between arbitrary protocols and the Guacamole protocol.
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
|
2016-12-18 06:00:55 +00:00
|
|
|
------------------------------------------------------------
|
|
|
|
Required dependencies
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
All software within guacamole-server is built using the popular GNU Automake,
|
|
|
|
and thus provides the standard configure script. Before compiling, at least
|
|
|
|
the following required dependencies must already be installed:
|
|
|
|
|
|
|
|
1) Cairo (http://cairographics.org/)
|
|
|
|
|
|
|
|
2) libjpeg-turbo (http://libjpeg-turbo.virtualgl.org/)
|
|
|
|
OR libjpeg (http://www.ijg.org/)
|
|
|
|
|
|
|
|
3) libpng (http://www.libpng.org/pub/png/libpng.html)
|
|
|
|
|
|
|
|
4) OSSP UUID (http://www.ossp.org/pkg/lib/uuid/)
|
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
Optional dependencies
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
In addition, the following optional dependencies may be installed in order to
|
|
|
|
enable optional features of Guacamole. Note that while the various supported
|
|
|
|
protocols are technically optional, you will no doubt wish to install the
|
|
|
|
dependencies of at least ONE supported protocol, as Guacamole would be useless
|
|
|
|
otherwise.
|
|
|
|
|
|
|
|
RDP:
|
|
|
|
* FreeRDP (http://www.freerdp.com/)
|
|
|
|
|
|
|
|
SSH:
|
|
|
|
* libssh2 (http://www.libssh2.org/)
|
|
|
|
* OpenSSL (https://www.openssl.org/)
|
|
|
|
* Pango (http://www.pango.org/)
|
|
|
|
|
|
|
|
Telnet:
|
|
|
|
* libtelnet (https://github.com/seanmiddleditch/libtelnet)
|
|
|
|
* Pango (http://www.pango.org/)
|
|
|
|
|
|
|
|
VNC:
|
|
|
|
* libVNCserver (http://libvnc.github.io/)
|
|
|
|
|
|
|
|
Support for audio within VNC:
|
|
|
|
* PulseAudio (http://www.freedesktop.org/wiki/Software/PulseAudio/)
|
|
|
|
|
|
|
|
Support for SFTP file transfer for VNC or RDP:
|
|
|
|
* libssh2 (http://www.libssh2.org/)
|
|
|
|
* OpenSSL (https://www.openssl.org/)
|
|
|
|
|
|
|
|
Support for WebP image compression:
|
|
|
|
* libwebp (https://developers.google.com/speed/webp/)
|
|
|
|
|
|
|
|
"guacenc" video encoding utility:
|
|
|
|
* FFmpeg (https://ffmpeg.org/)
|
|
|
|
|
|
|
|
|
2013-06-05 21:33:43 +00:00
|
|
|
------------------------------------------------------------
|
2013-06-05 21:59:57 +00:00
|
|
|
Compiling and installing guacd, libguac, etc.
|
2013-06-05 21:33:43 +00:00
|
|
|
------------------------------------------------------------
|
|
|
|
|
2013-06-05 21:59:57 +00:00
|
|
|
All software within guacamole-server is built using the popular GNU Automake,
|
2016-12-18 06:00:55 +00:00
|
|
|
and thus provides the standard configure script.
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
1) Run configure
|
|
|
|
|
|
|
|
$ ./configure
|
|
|
|
|
|
|
|
Assuming all dependencies have been installed, this should succeed without
|
|
|
|
errors. If you wish to install the init script as well, you need to specify
|
|
|
|
the location where your system init scripts are located (typically
|
|
|
|
/etc/init.d):
|
|
|
|
|
|
|
|
$ ./configure --with-init-dir=/etc/init.d
|
|
|
|
|
|
|
|
Running configure in this manner will cause the "make install" step to
|
|
|
|
install an init script to the specified directory, which you can then
|
|
|
|
activate using the service management mechanism provided by your
|
|
|
|
distribution).
|
|
|
|
|
|
|
|
2) Run make
|
|
|
|
|
|
|
|
$ make
|
|
|
|
|
2013-06-05 21:59:57 +00:00
|
|
|
guacd, libguac, and any available protocol support libraries will now
|
|
|
|
compile.
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
3) Install (as root)
|
|
|
|
|
|
|
|
# make install
|
|
|
|
|
2013-06-05 21:59:57 +00:00
|
|
|
All software that was just built, including documentation, will be
|
|
|
|
installed.
|
|
|
|
|
2013-06-05 21:33:43 +00:00
|
|
|
guacd will install to your /usr/local/sbin directory by default. You can
|
|
|
|
change the install location by using the --prefix option for configure.
|
|
|
|
|
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
Running guacd
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
|
|
|
If you installed the init script during compile and install, you should be
|
|
|
|
able to start guacd through the service management utilities provided by
|
|
|
|
your distribution (if any) or by running the init script directly (as root):
|
|
|
|
|
|
|
|
# /etc/init.d/guacd start
|
|
|
|
|
|
|
|
Root access is needed to write the pidfile /var/run/guacd.pid. You can also run
|
|
|
|
guacd itself directly without the init script (as any user):
|
|
|
|
|
|
|
|
$ guacd
|
|
|
|
|
2015-01-21 05:05:05 +00:00
|
|
|
guacd currently takes several command-line options:
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
-b HOST
|
|
|
|
|
|
|
|
Changes the host or address that guacd listens on.
|
|
|
|
|
|
|
|
-l PORT
|
|
|
|
|
|
|
|
Changes the port that guacd listens on (the default is port 4822).
|
|
|
|
|
|
|
|
-p PIDFILE
|
|
|
|
|
|
|
|
Causes guacd to write the PID of the daemon process to the specified
|
|
|
|
file. This is useful for init scripts and is used by the provided init
|
|
|
|
script.
|
|
|
|
|
2015-01-21 05:05:05 +00:00
|
|
|
-L LEVEL
|
|
|
|
|
|
|
|
Sets the maximum level at which guacd will log messages to syslog and,
|
|
|
|
if running in the foreground, the console. Legal values are debug,
|
|
|
|
info, warning, and error. The default value is info.
|
|
|
|
|
2013-06-05 21:33:43 +00:00
|
|
|
-f
|
|
|
|
Causes guacd to run in the foreground, rather than automatically
|
|
|
|
forking into the background.
|
|
|
|
|
2015-01-21 05:05:05 +00:00
|
|
|
Additional information can be found in the guacd man page:
|
|
|
|
|
|
|
|
$ man guacd
|
2013-06-05 21:33:43 +00:00
|
|
|
|
|
|
|
------------------------------------------------------------
|
|
|
|
Reporting problems
|
|
|
|
------------------------------------------------------------
|
|
|
|
|
2015-01-21 05:05:05 +00:00
|
|
|
Please report any bugs encountered by opening a new issue in the JIRA system
|
2013-06-05 21:33:43 +00:00
|
|
|
hosted at:
|
|
|
|
|
2016-10-27 04:57:07 +00:00
|
|
|
https://issues.apache.org/jira/browse/GUACAMOLE
|
2013-06-05 21:33:43 +00:00
|
|
|
|