Installing Citrix 12.1 on Fedora 17

Instructions for installing Citrix Receiver 12.1 on a 32-bit system running Fedora 17 with the Gnome desktop.

The install was completed in essentially 5 steps:

  1. Install FFmpeg libraries from RPMFusion
  2. Install the Citrix Receiver 12.1 RPM
  3. Create & install a local policy for SELinux
  4. Export & Install the SSL Certificates
  5. Update the local policy for SELinux

While this is simple enough, finding the directories and reading through the log files can be tedious.  Below I’ve tried to capture the details for each of the steps I went through to enable the client to run.

The Citrix Receiver 12.1 needs FFmpeg libraries to run properly.  FFmpeg is available from RPMFusion. The RPM package I installed was the free repository for Fedora 15, 16 and 17.  This link will pull the RPM directly from RPMFusion.

After enabling the RPM Fusion repository, you need to install FFmpeg.

Then I pulled the Citrix Receiver 12.1 RPM and installed it.  This link will take you to Citrix’s Linux download page.

When I ran the Citrix Receiver, I got a file not found error message for $HOME/.ICAClient/All_Regions.ini.

The Citrix receiver is installed in /opt/Citrix/ICAClient.  I found the missing files in /opt/Citrix/ICAClient/config.  I copied all the files in this directory to $HOME/.ICAClient.

Three of the files in the config directory are links.  The symbolic links are relative, so copying the links to your home directory is useless.  The three files are: appsrv.ini, module.ini, wfclient.ini.  These three files are located in /opt/Citrix/ICAClient/nls/en directory.  I copied these three files into my $HOME/.ICAClient directory.

When I ran the Citrix Receiver, I was given some SELinux errors.  The Citrix Receiver, which has an application name of wfica, needs access to several files.  To clear up the SELinux issues I had to run the following 2 commands several times until all the files that wfica needed access to were added to my local policy file.

SELinux Commands to create a local policy:

# grep wfica /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

The semodule command appends your local policy file to the kernel module.  You need to run semodule as root and after running it, your local policy changes are incorporated into the kernel.  This means the changes will remain available after rebooting.

After a few iterations, the Citrix receiver would start up, but I would get an error on a SSL certificate.  The certificate involved was from  To resolve this I needed to export the certificates from Mozilla and copy them in the keystore for Citrix.  To do this I, in Mozilla I went to edit / preferences / advanced / view certificates. I then scrolled down and found the certificate that was giving me the error.  Under, there are three certs. I selected all three and exported them.  Then from the directory I exported them to, I copied them to /opt/Citrix/ICAClient/keystore/cacert.

The Citrix Receiver started up, however there appeared to be some delays.  There appeared to be another file that Citrix needed access to, so I re-ran the two SELinux policy commands one more time to make sure I had enabled access for all the files.

The Citrix Receiver is running stable and I’ve had no other issues after following this recipe.

Hopefully this helps other.