As a system administrator, you may find yourself (today or in the future) working in an environment where Windows and Linux coexist.
It is no secret that some big companies prefer (or have to) run some of their production services in Windows boxes and others in Linux servers.
[ You might also like: 11 Best Tools to Access Remote Linux Desktop ]
If that is your case, you will welcome this guide with open arms (otherwise go ahead and at least make sure to add it to your bookmarks).
In this article, we will introduce you to guacamole, a remote desktop gateway powered by Tomcat that only needs to be installed on a central server.
[ You might also like: How to Access Remote Linux Desktop Using TightVNC ]
Guacamole will provide a web-based control panel that will allow you to switch quickly from one machine to another – all within the same web browser window.
Testing Environment
In this article, we have used the following machines. We will install Guacamole in an Ubuntu box and use it to access a Windows 10 box over Remote Desktop Protocol (RDP) and an RHEL box using SSH network protocol:
Guacamole server: Ubuntu 20.04 - IP 192.168.0.100 Remote SSH box: RHEL 8 – IP 192.168.0.18 Remote desktop box: Windows 10 – IP 192.168.0.19
That said, let’s get started.
Installing Guacamole Server in Ubuntu
1. Before installing guacamole, you will need to take care of its dependencies first.
$ sudo apt update $ sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \ libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \ libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \ libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user
2. Download and extract the tarball. As of early February 2021, the latest version of Guacamole is 1.3.0. You can refer to the Guacamole Downloads page to find out the latest version at a given time.
$ wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz $ tar zxf guacamole-server-1.3.0.tar.gz
3. Compile the software.
$ cd guacamole-server-1.3.0/ $ ./configure
As it is to be expected, configure will check your system for the presence of the required dependencies and for supported communication protocols (as can be seen in the highlighted square, Remote Desktop Protocol (RDP) and SSH are supported by the dependencies installed earlier).
If everything goes as expected you should see this when it completes (otherwise, make sure you installed all the necessary dependencies):
As the last line in the above image suggests, run make
and make install
to compile the program:
$ make $ sudo make install
4. Update the cache of installed libraries.
$ sudo ldconfig
and hit Enter.
Installing Guacamole Client in Ubuntu
After completing the above steps, the guacamole server will have been installed. The following instructions will now help you to set up guacd (the proxy daemon that integrates Javascript with communication protocols such as RDP or SSH) and guacamole.war (the client), the component that makes up the final HTML5 application that will be presented to you.
Note that both components (guacamole server and client) need to be installed on the same machine – there is no need to install a so-called client on the machines you want to connect to).
To download the client, follow these steps:
5. Download the web application archive and change its name to guacamole.war.
Note: Depending on your distribution, the Tomcat libraries directory may be located at /var/lib/tomcat.
$ cd /var/lib/tomcat9/ $ sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war $ sudo mv guacamole-1.3.0.war webapps/guacamole.war
6. Create the configuration file (/etc/guacamole/guacamole.properties). This file contains the instructions for Guacamole to connect to guacd:
$ sudo mkdir /etc/guacamole $ sudo mkdir /usr/share/tomcat9/.guacamole $ sudo nano /etc/guacamole/guacamole.properties
Insert the following contents to /etc/guacamole/guacamole.properties. Note that we are referencing a file we will create in the next step (/etc/guacamole/user-mapping.xml):
guacd-hostname: localhost guacd-port: 4822 user-mapping: /etc/guacamole/user-mapping.xml auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider basic-user-mapping: /etc/guacamole/user-mapping.xml
And create a symbolic link for Tomcat to be able to read the file:
$ sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/
7. Guacamole uses the user-mapping.xml, create this file to define which users are allowed to authenticate to the Guacamole web interface (between <authorize>
tags) and which connections they can use (between <connection>
tags):
$ sudo nano /etc/guacamole/user-mapping.xml
The following user mapping grants access to the Guacamole web interface to a user tecmint
with password tecmint01. Then, inside the SSH connection, we need to place a valid username to log in to the RHEL box (you will be prompted to enter the corresponding password when Guacamole initiates the connection).
In the case of the Windows 10 box, there is no need to do that as we will be presented with the login screen over RDP.
To obtain the md5 hash of the password tecmint01, type the following command:
# printf '%s' "tecmint01" | md5sum
Then insert the output of the command in the password field inside the <authorize>
tags:
<user-mapping> <authorize username="tecmint" password="8383339b9c90775ac14693d8e620981f" encoding="md5"> <connection name="RHEL 8"> <protocol>ssh</protocol> <param name="hostname">192.168.0.18</param> <param name="port">22</param> <param name="username">gacanepa</param> </connection> <connection name="Windows 10"> <protocol>rdp</protocol> <param name="hostname">192.168.0.19</param> <param name="port">3389</param> </connection> </authorize> </user-mapping>
As it is the case with all files that contain sensitive information, it is important to restrict the permissions and change the ownership of the user-mapping.xml
file:
$ sudo chmod 600 /etc/guacamole/user-mapping.xml $ sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml
Start Tomcat and guacd.
$ sudo service tomcat9 start $ sudo /usr/local/sbin/guacd &
Launching the Guacamole Web Interface
8. To access the Guacamole web interface, launch a browser and point it to http://server:8080/guacamole
where the server is the hostname or IP address of your server (in our case it is http://192.168.0.100:8080/guacamole
) and log in with the credentials given earlier (username: tecmint, password: tecmint01):
9. After clicking on Login, you will be taken to the administrative interface where you will see the list of connections user tecmint has access to, as per user-mapping.xml
:
10. Go ahead and click on the RHEL 8 box to log in as gacanepa (the username specified in the connection definition).
Note how the connection source is set to 192.168.0.100 (the IP of the Guacamole server), regardless of the IP address of the machine that you use to open the web interface:
11. If you want to close the connection, type exit and hit Enter. You will be prompted to return to the main interface (Home), reconnect, or log out from Guacamole:
12. Now it’s time to try the remote desktop connection to Windows 10:
Congratulations! Now you can access a Windows 10 machine and an RHEL 8 server from within a web browser.
Summary
In this article, we have explained how to install and configure Guacamole to allow access to remote machines over RDP and SSH. The official website provides extensive documentation to help you set up access using other protocols, such as VNC and other authentication mechanisms, such as DB-based…
As always, don’t hesitate to drop us a note if you have any questions or suggestions about this article. We also look forward to hearing your success stories.
Please use real ASCII drawings!
Hi,
Thanks for the tutorial.
It seems to work for me, but how do I get the admin account back?
Hello,
Thanks for the post but I’m having an error. An internal error has occurred within the Guacamole server, and the connection has been terminated. If the problem persists, please notify your system administrator, or check your system logs.
thanks
tomcat9: unrecognized service
I am getting this error while starting guacamole.
Any idea how to solve this?
Hi there,
in step 1 you are missing dependencies for Kubernetes (libwebsockets) and RDP (FreeRDP) – as shown in step 3… For anyone wondering, just run this command between step 1 and step 2:
anyway, thanks for the tutorial =)
@Thorsten,
Thanks for the tip, I have updated the article…
Can you please update this article for 2021? Thanks.
@Rahul,
I have updated the article as requested…
Warning: tomcat7.service changed on disk. Run ‘systemctl daemon-reload’ to reload units.
@Maneesha,
Just run systemctl daemon-reload command as suggested in the message…
Thanks for documentation and install tutorial.
Kindly guide us how to integrate with Active Directory users group can automatically login with there user name.How AD user can access the Machine using two factor authentication.??
Hi,
I am getting below error, please help to resovle.
Thanks for your tutorial,
I have guacamole installed on vps actually it remote access a local pc with DHCP IP,
My question is how to switch from one machine to another – all within the same web browser window ?
what if the ip address of remote server is not static ??????
@Neha,
Then no way to access it, unless you are in the same network..
Thanks for the tutorial.
I had to make following changes to make it work with 0.9.14 release:
step 2. Download and extract the tarball.
extract the gauc-client tarball to /var/lib/tomcat7/webapps.
step 6. add following line to configuration file (/etc/guacamole/guacamole.properties)
I hope it helps others find it helpful.
Please update the tutorial for 0.9.14 release.
Thank’s for the discovery of guacamole. I have to take a look at this very interesting program !
I hope it can help me to replace the client side of vnc on my servers (clients computers)
Thank you again !
Thanks and very help full post. thank you so much. But I want to run only application on web, please help how we can access windows or Linux application from web browsers. i know one method that is using SSH in which we can access apps from Linux to windows and vice versa by enabling x11 forwarding in ssh conf file. but that uses commands, but i want to make access to those apps using GUI. either from browser or app. So can you help me with that?
Thanks and very help full post. thank you so much. But I want to run only application on web, please help how we can access windows or Linux application from web browsers.
Hi,
I have done the same steps, but finally i am facing 404 status error.
HTTP Status 404 – /guacamole
type Status report
message /guacamole
description The requested resource is not available.
Apache Tomcat/7.0.64 (Ubuntu)
any idea where am i missed something?
Hello,
Thanks for the post but Im having the error HTTP Status 404 – /guacamole, im using linux mint as server.
thanks.
Hi Gabriel,
I have followed your instructions in a Google Cloud Platform. Put Guaca in a ubuntu box. And I have to other instances, Linux, and windows which I am trying to reach. I can see the Linux machine, but the other windows instance, no success. It even doesn’t appear in the connections dashboard. It says connections error. Any ide? Thanks in advance!
Hi Gabriel,
How do we connect to Connection Machine without Guacamole authorized user, once we generate the link can we connect to it without login?
Thanks,
Gulab Pasha
we made all steps but some error here: ” ERROR: Unable to bind socket to any addresses.”
For anyone stuck on invalid logins: Make sure that the user mapping also is readable for the tomcat user. *head@desk*
Hi Gabriel,
thanks for the tut. Unfortunately I can’t login. The user mapping seems to be unrecognized even when I link the guacamole.properties file to .guacamole folder in tomcat7s home dir, /usr/share/tomcat7/.guacamole. I’m running Debian 8.5 and installed the server via apt-get install instead of compiling it myself.
Do you have any idea?
From a previous comment: For anyone stuck on invalid logins: Make sure that the user mapping also is readable for the tomcat user.
Erm, yes, that’s my comment and it’s newer than that one. You can say, I found out on my own. ;-)
For anyone else stuck on this where you get a 404 status.
Move the guacamole.war file to the Webapps folder within your “tomcat7” folder.
Thank you!
Hi luke,
I have moved guacamole.war file to web apps, even though I am getting 404 error, can you please help.
@Maneesha,
May I know which version of Linux distribution you are using?
I have tried and everything appears to have worked perfectly except when I go to http://serverIP:8080/guacamole, I get HTTP status 404
type Status report
message /guacamole
description The requested resource is not available.
how to set /usr/local/sbin/guacd & to autostart on vm reboot?
Thanks!
Thanks for your clear explanation. But i suggest you to revise the article’s title to :
Setting Up Guacamole Server on Linux to allow Remote Access via web browser
i think that title is more SEO friendly :-)
Thanks for your clear explanation. But i suggest you to revise the article’s title to :
Setting Up Web-Based Guacamole Tool to allow Remote Access from Linux/Windows Machines
hi, i followed your guide, however i cannot log in on guacamole all i get is invalid logins. any idea of what might be happening
What distribution and version are you using?
Fedora 24 make fails;
/usr/include/glib-2.0/gobject/gparam.h:166:33: error: enumerator value for ‘G_PARAM_DEPRECATED’ is not an integer constant expression [-Werror=pedantic]
G_PARAM_DEPRECATED = 1 << 31
SEE https://glyptodon.org/jira/browse/GUAC-1530
@RobbieTheK,
This appears to be a known issue caused by an incompatibility with GCC 6: https://mangolassi.it/topic/10294/guacamole-compilation-error-on-fedora-24/5
Well the good news is that dnf installed everything correctly but using your instructions I can’t get the browser to connect and nothing appears in any of the log files. Here’s my server.xml file what else can I check?
Hi Gabriel – great article ! A quick question – can I use Guacamole as a central server in the cloud as I have multiple customers (am a Managed Service Provider) that i would like to Remote Desktop to for support issues?
For example I have customer A on a public IP with internal LAN and Customer B with different public IP but with the same internal LAN address set-up as Customer A.
With this as a Web HTML 5 request and I have either Port forwarding on the firewall accepting my public IP on port 80 or 443 (or a site to site VPN – which I don’t like due to security and overhead) would Guacamole work in a multi tenant environment?
@Wallis,
I must confess I’ve never tried Guacamole in such an environment, but given that you are considering to set up port forwarding (and I assume permissions as well) on the firewall, I would definitely give Guacamole a try.
Thanks, the official documentation is not really simple to use for beginners. Your tutorial is complete and usefull to start from scratch, it helps me.
@Bobleponge,
First off, nice nickname :). Thank you for taking the time to comment. I’m glad you found this article useful.
Well explained ..!! Very helpful for beginners to setup guacamole.. Thanks a lot
@Deepak,
Thanks for finding this article very helpful for beginners like you, hope you managed to setup guacamole on Linux…
make fails on Fedora 22:
Makefile:1105: recipe for target ‘guacdr_client_la-rdp_stream.lo’ failed
make[3]: *** [guacdr_client_la-rdp_stream.lo] Error 1
make[3]: Leaving directory ‘/opt/guacamole-server-0.9.9/src/protocols/rdp’
Makefile:724: recipe for target ‘all’ failed
make[2]: *** [all] Error 2
make[2]: Leaving directory ‘/opt/guacamole-server-0.9.9/src/protocols/rdp’
Makefile:463: recipe for target ‘all-recursive’ failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory ‘/opt/guacamole-server-0.9.9’
Makefile:394: recipe for target ‘all’ failed
make: *** [all] Error 2
[root@erdos guacamole-server-0.9.9]# Makefile:1105: recipe for target ‘guacdr_client_la-rdp_stream.lo’ failed
bash: Makefile:1105:: command not found…
Error at STEP 5:
# cd /var/lib/tomcat7
# wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.9.war
# mv guacamole-0.9.9.war guacamole.war
Update with:
# cd /var/lib/tomcat7/webapps
# wget http://sourceforge.net/projects/guacamole/files/current/binary/guacamole-0.9.9.war
# mv guacamole-0.9.9.war guacamole.war
@asd,
Thank you for pointing this out. We’ll correct the writeup.
I have installed guacomole 0.9.9 on Debian Jessie and Tomcat8.
If i try to login to guacomole, it tries immediately to connect to the first . The 2nd login goes automatically.
Why? How to prevent it?
I don’t what is here wrong? Please help me….
Thanx Jan
vnc
localhost
5901
12345
It should be: “connect to the first connection in user-mapping”
If I delete the whole section connection … /connection
I can see the home site of guacamole with empty connections part.
Is it a feature, that after first login coms directly the 2nd one???
Thanks Jan
@Jan,
I must confess I don’t fully understand your issue. Can you explain with screenshots what is the current behavior and what is what you are expecting?
Thank you for this awesome guide. However, I have followed all the steps just as outlined but am unable to get an interface in the browser. instead, I get
HTTP Status 404 – /guacamole
type Status report
message /guacamole
description The requested resource is not available.
Apache Tomcat/7.0.52 (Ubuntu)
What did i get wrong, or what more do I need to do?
Thanks for the help!
@Tosin,
Thank you for taking the time to comment. Please make sure, as other readers have noted, that the guacamole.war file must be located in the webapps directory. Please try and get back to us if it still doesn’t work.
Thank you all. I have reviewed the config and followed the instructions as pointed out. Issue solved now. Gracias!
@Tosin,
We’re glad to hear your issue is now resolved. Congrats!
hi,
The guacamole.war must be in the webapp directory of tomcat.
That is correct. Please check #5 under “Installing Guacamole client”. The instruction is there.
Is this only suppose to be used on the LAN network, if not is it possible to use SSH key logins?
You can use key-based authentication as well. Check the Authentication section here: http://guac-dev.org/doc/gug/configuring-guacamole.html
Hi gabriel, good article. But, when I tested with my VM (CentOS 6.7), when I started Tomcat, the system displays this:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: [1] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/_/org/apache/jsp/index_jsp.java]
The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
Some help?
@Fernando,
I replied to your message on LinkedIn. Please check and confirm.
Sorry – that was a ./configure && make && make install
on
Linux 2.6.18-408.el5.centos.plus i686 i686 i386
CentOS release 5.11 (Final)
I know it’s old but it’s a non-PAE machine
@Joe,
You have two options:
1) Check that the dependencies you installed (listed in this article) are the right ones for CentOS 5, and then try again.
2) This guide (https://deviantengineer.com/2013/10/guacamole/) contains the instructions to install Guacamole on CentOS 6 – not exactly the same thing, but it’s definitely closer than 7.
Let us know how it goes.
No go:
————————————————
guacamole-server version 0.9.9
————————————————
Library status:
freerdp …………. yes
pango …………… yes
libssh2 …………. yes
libssl ………….. yes
libtelnet ……….. no
libVNCServer …….. no
libvorbis ……….. yes
libpulse ………… no
libwebp …………. no
Protocol support:
RDP ……. yes
SSH ……. yes
Telnet …. no
VNC ……. no
Init scripts: no
Type “make” to compile guacamole-server.
make all-recursive
make[1]: Entering directory `/root/guacamole-server-0.9.9′
Making all in src/libguac
make[2]: Entering directory `/root/guacamole-server-0.9.9/src/libguac’
CC libguac_la-audio.lo
In file included from ./guacamole/client.h:43,
from audio.c:28:
/usr/include/cairo/cairo.h:41:28: error: cairo-features.h: No such file or directory
In file included from ./guacamole/client.h:43,
from audio.c:28:
/usr/include/cairo/cairo.h:55: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_public’
/usr/include/cairo/cairo.h:58: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘const’
/usr/include/cairo/cairo.h:265: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_t’
/usr/include/cairo/cairo.h:268: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_t’
/usr/include/cairo/cairo.h:271: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:274: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:277: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:280: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:283: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:286: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:289: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:314: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:317: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:320: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:323: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:328: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:334: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:357: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:388: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:391: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:408: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:417: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:420: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:426: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:429: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:432: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:435: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:438: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:442: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:446: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:449: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:452: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:455: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:458: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:462: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:465: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:468: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:471: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:474: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:480: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:486: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:500: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:503: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:506: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:512: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:522: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:526: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:529: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:533: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:537: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:543: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:546: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:549: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:552: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:555: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:558: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:562: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_bool_t’
/usr/include/cairo/cairo.h:565: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_bool_t’
/usr/include/cairo/cairo.h:569: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:574: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:580: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:583: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:586: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:815: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_options_t’
/usr/include/cairo/cairo.h:818: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_options_t’
/usr/include/cairo/cairo.h:821: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:824: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:827: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:830: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_bool_t’
/usr/include/cairo/cairo.h:834: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘unsigned’
/usr/include/cairo/cairo.h:837: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:840: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_antialias_t’
/usr/include/cairo/cairo.h:843: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:846: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_subpixel_order_t’
/usr/include/cairo/cairo.h:849: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:852: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_hint_style_t’
/usr/include/cairo/cairo.h:855: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:858: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_hint_metrics_t’
/usr/include/cairo/cairo.h:864: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:870: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:873: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:877: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:881: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:885: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:889: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:893: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:896: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:899: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_face_t’
/usr/include/cairo/cairo.h:902: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:906: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:909: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:914: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:920: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:923: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:928: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_face_t’
/usr/include/cairo/cairo.h:931: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:934: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:980: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_type_t’
/usr/include/cairo/cairo.h:983: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:987: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:995: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_scaled_font_t’
/usr/include/cairo/cairo.h:1001: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_scaled_font_t’
/usr/include/cairo/cairo.h:1004: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1007: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1010: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_type_t’
/usr/include/cairo/cairo.h:1013: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1017: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1022: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1028: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_font_face_t’
/usr/include/cairo/cairo.h:1031: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1035: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1039: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1045: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_operator_t’
/usr/include/cairo/cairo.h:1048: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1051: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘double’
/usr/include/cairo/cairo.h:1054: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_antialias_t’
/usr/include/cairo/cairo.h:1057: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1060: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_fill_rule_t’
/usr/include/cairo/cairo.h:1063: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘double’
/usr/include/cairo/cairo.h:1066: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_line_cap_t’
/usr/include/cairo/cairo.h:1069: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_line_join_t’
/usr/include/cairo/cairo.h:1072: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘double’
/usr/include/cairo/cairo.h:1077: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1080: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1083: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1188: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_path_t’
/usr/include/cairo/cairo.h:1191: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_path_t’
/usr/include/cairo/cairo.h:1194: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1198: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1203: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1206: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘const’
/usr/include/cairo/cairo.h:1211: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1217: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1220: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1223: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1226: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1280: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_type_t’
/usr/include/cairo/cairo.h:1283: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_content_t’
/usr/include/cairo/cairo.h:1299: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1303: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1309: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1313: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1316: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1319: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1326: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1331: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1336: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1385: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1390: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_surface_t’
/usr/include/cairo/cairo.h:1397: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘unsigned’
/usr/include/cairo/cairo.h:1400: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_format_t’
/usr/include/cairo/cairo.h:1403: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
/usr/include/cairo/cairo.h:1406: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
/usr/include/cairo/cairo.h:1409: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘int’
/usr/include/cairo/cairo.h:1425: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1428: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1432: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1435: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1439: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1443: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_t’
/usr/include/cairo/cairo.h:1446: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1449: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1489: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_pattern_type_t’
/usr/include/cairo/cairo.h:1492: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1497: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1503: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1507: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1534: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1537: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_extend_t’
/usr/include/cairo/cairo.h:1549: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1552: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_filter_t’
/usr/include/cairo/cairo.h:1557: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1563: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1566: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1570: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1574: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1578: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1581: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1584: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1587: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘cairo_status_t’
/usr/include/cairo/cairo.h:1590: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1595: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1599: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
/usr/include/cairo/cairo.h:1604: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
In file included from audio.c:28:
./guacamole/client.h:46: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘struct’
cc1: warnings being treated as errors
./guacamole/client.h:92: warning: struct has no members
audio.c: In function ‘guac_audio_stream_alloc’:
audio.c:46: error: ‘guac_client_info’ has no member named ‘audio_mimetypes’
audio.c:48: error: ‘guac_client_info’ has no member named ‘audio_mimetypes’
make[2]: *** [libguac_la-audio.lo] Error 1
make[2]: Leaving directory `/root/guacamole-server-0.9.9/src/libguac’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/guacamole-server-0.9.9′
make: *** [all] Error 2
[root@gateway guacamole-server-0.9.9]#
@Joe,
I came back to this article to reply to another comment and thought of something that may be helpful if you’re still interested in setting up guacamole. You mentioned you were trying to install the program in an old 32-bit machine. Just in case you have it and want to give it yet another try, you may want to consider installing the 32-bit version of CentOS 7 (see https://seven.centos.org/2015/10/centos-linux-7-32-bit-x86-i386-architecture-released/), which was released not too long ago. I haven’t tested this myself so I can’t guarantee it will work, but it’s worth the shot. Maybe set it up in a VM with the same characteristics as your 32-bit machine first?
root@bld-puppet:~# guacd[24988]: INFO: Guacamole proxy daemon (guacd) version 0.9.9 started
guacd[24988]: ERROR: Unable to bind socket to any addresses.
Any idea??
@Ravi,
Please check your guacamole.properties and user-mapping.xml files. Post them here if you want me to take a look.
After that:
1) Kill the guacd process (most likely you already started it without noticing and it’s already running, which may explain why it refuses to bind the socket to an address).
ps -ef | grep guacd | grep -v grep
2) Restart Tomcat
3) Launch guacd again
Let us know how it goes.
will return the PID
Guacamole has more sophisticated installation capabilities that also implement & utilize mysql, nginx. If you build/install xrdp onto linux desktop environments you can also remote desktop via a browser to get a linux desktop.
@bmullan – you’re right. Guacamole has all those outstanding features and more. I had to keep this article simple as an introduction to Guacamole. But that is the reason why, in the Summary section, I advised readers to check out the official website to learn more.