sudo apt-get install bridge-utils qemu-kvm libvirt-bin python python-netifaces vnc4server libyaml-dev python-yaml numactl libparted0-dev libpciaccess-dev libnuma-dev libyajl-dev libxml2-dev libglib2.0-dev libnl-dev python-pip python-dev libxml2-dev libxslt-dev -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libglib2.0-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
libglib2.0-0
Package python-netifaces is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Package libpciaccess-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Package libparted0-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
Package python-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
python
E: Package 'python-netifaces' has no installation candidate
E: Unable to locate package numactl
E: Package 'libparted0-dev' has no installation candidate
E: Package 'libpciaccess-dev' has no installation candidate
E: Unable to locate package libnuma-dev
E: Unable to locate package libyajl-dev
E: Package 'libglib2.0-dev' has no installation candidate
E: Unable to locate package libnl-dev
E: Unable to locate package python-pip
E: Package 'python-dev' has no installation candidate
E: Unable to locate package libxslt-dev
Guacamole is included in the repositories of several Linux distributions. If your distribution provides Guacamole packages for you, this is the preferred method of installing Guacamole. If your distribution does not provide Guacamole packages, or the packages provided are too old, you can build Guacamole from source fairly easily.
Be aware that Guacamole is a remote desktop gateway, and cannot access your desktop's display without a remote desktop server of some kind to connect to. Guacamole does not contain its own VNC or RDP server, and these installation procedures will not walk you through the installation of a VNC or RDP server.
Your distribution of choice will provide documentation for setting up VNC, as will the documentation provided by those that created the VNC server you wish to use. If you are going to use RDP to connect to Windows computers, Microsoft (and many others on the internet) provides documentation describing how to set up remote desktop.
Installing Guacamole from your distribution's guacamole package will typically install the web application and the proxy guacd, along with support for VNC (libguac-client-vnc). If you want support for RDP or SSH, you will need to install those packages as well.
After the Guacamole packages are installed, the web application may still need to be deployed to your servlet container. Some packages, like the Debian package called guacamole-tomcat, will do this for you, but if your distribution provides no such package, you will have to deploy Guacamole yourself.
There is also a PPA which contains the most recent stable build of Guacamole while updates to the official Debian and Ubuntu repositories are pending. If you don't want to wait for the main repositories to update, users of Ubuntu can just add the PPA and install the packages from there:
For users of Debian or any flavor of Ubuntu, installing Guacamole is as simple as installing the guacamole-tomcat package, and then editing the /etc/guacamole/user-mapping.xml file to add some connections. The guacamole-tomcat package will install Tomcat and automatically create the necessary symbolic links to deploy Guacamole. If you don't want to use Tomcat, or you want to deploy Guacamole manually, you can install the guacamole package instead, and follow the deployment instructions provided in this chapter.
If you install the guacamole-tomcat package, you will be prompted for whether you wish to restart Tomcat automatically. Tomcat must be restarted after Guacamole is installed or upgraded. If you don't want to do this, or you want to do this manually, choose "No" (the default). Choosing "Yes" will restart Tomcat for this and future installs of Guacamole.
The Debian and Ubuntu packages will set up guacd such that it runs as its own reduced-privilege guacd user, for the sake of security. Similarly, the user-mapping.xml file will only be readable by users in the guacamole-web group, as it will potentially contain sensitive information like passwords in plain text.
The guacamole-tomcat package will automatically put the tomcat6 user in the guacamole-web group, but if you are installing Tomcat manually or using another servlet container, you must ensure your servlet container's user is a member of the guacamole-web group. If you do not do this, your servlet container will not be able to read user-mapping.xml, and all attempts to login to Guacamole will fail.
Recent versions of Debian and Ubuntu have a recent-enough version of FreeRDP and include libguac-client-rdp0, but if you're using an older version of Debian (such as Debian 6.0 a.k.a. "squeeze"), you will have to either do without RDP support or install FreeRDP and guacamole-server manually, without using your distribution's packages.
Fedora has an excellent Guacamole package, guacamole, which will automatically install deploy Guacamole to Tomcat. It does not depend on guacd, however, and you thus must install the guacd package manually alongside guacamole:
Depending on which protocols you require support for, you will need to install one of the libguac-client-* packages to provide support for those protocols. Most users will want at least libguac-client-vnc. If you want SSH support, or access to RDP servers, you will need to install libguac-client-ssh or libguac-client-rdp respectively.
Neither RHEL nor CentOS include Guacamole packages in their main repositories, however Fedora maintains a repository called EPEL which contains binaries compatible with both RHEL and CentOS. The EPEL repository contains the Guacamole packages described above. If you wish to install Guacamole on RHEL or CentOS, you should either add the EPEL repository and install from that, or build Guacamole from source.
At this point, all you need to do is edit the /etc/guacamole/user-mapping.xml file to add some connections. You do not need to restart Tomcat after editing this file; it will be reloaded automatically by Guacamole.
If you distribution isn't listed above, there is still a chance your distribution provides Guacamole packages. A search for "guacamole" in your distribution's package manage should answer that question quickly. If no package is provided, your only option is to build Guacamole from source.
Building Guacamole from source is not hard. In most cases, all you need to do is download the latest source for guacamole-server, and the latest guacamole.war from the Guacamole project website, build guacamole-server, and then deploy guacamole.war.
The method for installing Guacamole is fairly constant across platforms, and the instructions given here should apply almost universally (and in the case that they don't, you probably already know what you need to do).
Building the components of Guacamole from source is not difficult, providing you have the necessary tools installed already. The source for the entirety of Guacamole is available from the Guacamole project web site in convenient source archives, each named after the component they contain. Each archive also contains a file named README which lists detailed instructions for building and installing.
Guacamole is separated into two pieces: guacamole-server, which provides the guacd proxy and related libraries, and guacamole-client, which provides the client to be served by your servlet container. In most cases, the only source you will need to build is guacamole-server, and downloading the latest guacamole.war from the project website will be sufficient to provide the client. Building guacamole-client is really only necessary when you wish to modify the source or when you want to try the latest unreleased changes.
To compile the C components, you will need a C compiler (such as gcc) and the libraries that each component depends on. Note that many Linux distribution separates library packages into binary and "development" packages; you will need to install the development packages. These will usually end in a "-dev" or "-devel" suffix.
guacamole-server contains all the native, server-side components required by Guacamole to connect to remote desktops. It provides a common C library, libguac, which all other native components depend on, as well as separate libraries for each supported protocol, and a proxy daemon, guacd, the heart of Guacamole.
guacd is the proxy daemon that runs on your Guacamole server, accepting connections from the Guacamole web application on behalf of remote users. It effectively translates between common remote desktop protocols like VNC or RDP by dynamically loading protocol support plugins. Building guacd creates an executable called guacd which can be run manually or, if you wish, automatically when your computer starts up.
In order to build guacamole-server, you will need Cairo, a graphics library, and libpng, the official PNG library. These libraries are strictly required in all cases. Guacamole cannot be built without them. The other dependencies of guacamole-server are optional. Which libraries you will need to install depends on what support you need.
3a8082e126