Installing the linux 64-bit Citrix receiver v12
Posted by: hbr in x64, receiver, linux, Citrix, 64bit on
Dec 27, 2011
Nothing should be easier than downloading a binary package from the internet, install it and run the executable. But in case of Citrix Receivers on Linux, this has always been somewhat of an issue. With the previous versions there was always some issues with Motif or certificates that were missing. With version 12 of the Receiver for Linux this is no different. With all the excuses Citrix has, they still manage to deliver almost complete installers that only need “a little bit of manual tweaking” to get to work.
The internet is swarming with lots of tips and tricks how to get it to work. Most common recommendation is to use the tarball and/or use the previous version (!) and go from there. Most of them solve the problem for a specific case and I found myself having to combine several solutions to get mine to work.
The main problem with the 64-bit receiver is that it’s actually a 32-bit program and the libraries it needs are 32-bit. You can install the ia32 package but that will still leave you with some libraries missing that are installed on the 64-bit platform and their 32-bit counterpart will not install simultaneously.
The other problem is the browser integration. When you click an ICA link on a page, the receiver will not pick it up and you’re unable to start any programs or desktops.
So how do we get the receiver to work.
First, download the .deb package from the 64-bit section http://www.citrix.com/English/ss/downloads/details.asp?downloadId=2316611&productId=1689163 (notice the ‘32-bit client’ remark).
Next, simply install it with ‘sudo dpkg -i ~/Downloads/icaclient_12.0.0_amd64.deb’. You will get an error message that some dependencies are unmet. To fix this, use ‘sudo apt-get –f install’ without any further arguments. This will install a whole bunch of missing libraries with all their dependencies. That works well for wfica, but wfcmgr still won’t run. It’s still missing libXm.so.4 (check ‘ldd /opt/Citrix/ICAClient/wfcmgr’).
But, if you try to install libmotif4 (where libXm is hidden) you may succeed but wfcmgr still won’t start and will complain about the lib being the wrong architecture. So we want to install libmotif4:i386. But if you try that, you’ll get a message saying it needs libxmu6:i386. And if you install that… then your system breaks because it will uninstall half your 64bit system in the process.
So instead of installing it, we’ll download it with ‘sudo apt-get download libmotif4:i386 libxmu6:i386’ and then unpack it with ‘sudo dpkg -x libmotif4* /tmp’ and ‘sudo dpkg -x libxmu6* /tmp’. Now to finish off with a ‘sudo cp -r /tmp/usr/lib/* /usr/lib32/’. Now you can start /opt/Citrix/ICAClient/wfcmgr and you’re good to go. Well, almost. Again, there is a certificate problem. The Usertrust Legacy Secure Server CA is missing from the keystore. So, we need to go to /opt/Citrix/ICAClient/keystore/cacerts and download the certificate with ‘sudo wget http://crt.usertrust.com/USERTrustLegacySecureServerCA.crt'. Now at last, we can start wfcmgr and connect to our PNagent url.
Ok, so now it’s the webbrowser’s turn. Somehow the installer fails to properly set the properties for .ica files or the web component from the receiver simply doesn’t work right. Either way, starting a link from a browser doesn’t start an ICA connection.
So instead of the plugin, we’ll use the default mime types to start the connection. First we need to create 2 files:
/usr/share/applications/desktop/wfica.desktop
- [Desktop Entry]
Name=Citrix ICA client
GenericName=Citrix ICA client
Comment=Citrix ICA client
Categories=Application
Encoding=UTF-8
Exec=/opt/Citrix/ICAClient/wfica
Icon=wfica
Terminal=false
Type=Application
MimeType=application/x-ica
/usr/share/mime/packages/ica.xml
- <?xml version="1.0" encoding="utf-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-ica">
<comment>Citrix ICA launcher</comment>
<glob pattern="*.ica"/>
</mime-type>
</mime-info>
Then we add an entry to the /etc/gnome/defaults.list: ‘application/x-ica=wfica.desktop’. Next, we update the mime database with ‘sudo update-desktop-database’ and ‘sudo update-mime-database /usr/share/mime’ and install the new mime type: ‘sudo xdg-mime install --novendor /usr/share/mime/packages/ica.xml’ and ‘sudo xdg-mime default wfica.desktop application x-ica’.
In Firefox this worked for me but for Chrome I had to do one more thing; disable the plugin at ‘about:plugins’ in the address bar. But after that, connecting to a published application and desktop worked like a charm despite the broken installer
.
