How do I install Citrix ICA Client (Receiver) 13 on Debian 64-bit Linux?

6

3

The Citrix ICA Client (Receiver) 13 has many i386 dependencies, so I cannot install on my amd64 (64-bit) Debian Linux. How can I make this work?

kevinarpe

Posted 2014-02-09T11:39:22.907

Reputation: 2 133

Answers

6

This was very difficult to fix, so I am answering my own question. Much debt is owed to the others who have blogged about the various components of this fix!

This answer assumes you are running Debian amd64 architecture. It also assumes your Debian installation is already multiarch-aware. (That is beyond this question.)

  1. Get the Citrix ICA Client (Receive) 13 installer: http://www.citrix.com/downloads/citrix-receiver/linux/
    • Be sure to select the 64-bit .deb installer
    • Example filename: icaclient_13.0.0.256735_amd64.deb
  2. dpkg --add-architecture i386
  3. apt-get install ia32-libs ia32-libs-i386 libglib2.0-0:i386 libgtk2.0-0:i386
    • This will install almost two hundred dependent packages. Be very patient.
  4. dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
    • Ignore the warnings about missing dependencies: lib32asound2 and nspluginwrapper. The installation will work without these libraries.
  5. Check there are no missing dependencies: ldd /opt/Citrix/ICAClient/wfica
    • If you see not found in the output:
      1. Uninstall the Citrix ICA Client: apt-get remove icaclient
      2. Install the missing packages. (This can be a bit tricky as Debian does not always have a 1:1 relationship between names in the ldd output and package names.)
      3. Reinstall the Citrix ICA Client: dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
  6. Don't forget to copy the CACerts from Mozilla. The default collection from Citrix is pathetic.
    • cp --verbose /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/
  7. If you are using KDE, edit the file association application/x-ica.
    • Add a new application: /opt/Citrix/ICAClient/wfica.sh
  8. At the moment, it is better to use Firefox/Iceweasel to login into remote Citrix servers. Google Chrome requires the launch.ica to be downloaded first, then run. For Firefox/Iceweasel, this is seamless, and these applications automatically respect KDE's file associations.

Each time you need to add unrelated Debian packages in the future, you will be forced to:

  1. Uninstall package icaclient: apt-get remove icaclient
  2. Install other packages
  3. Reinstall package icaclient (using the .deb file from Citrix)
    • dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
  4. Recopy the CACerts from Mozilla.
    • cp --verbose /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/

What a pain.

Finally, you can make permanent changes to your .deb package. Read more here: How do I fix a bad commercial deb package?

kevinarpe

Posted 2014-02-09T11:39:22.907

Reputation: 2 133

1

If you have dpkg-add-architecture you cannot have ia32-libs-* -- these are different solutions. On legacy Debian, you could install ia32-libs on amd64 for 32-bit support; from Wheezy onwards, the superseding -- and much superior, much more general -- solution is dpkg-add-architecture i386. See also https://wiki.debian.org/Multiarch

– tripleee – 2015-07-29T07:12:35.423

@tripleee: I suggest you expand your comment into a separate answer. – kevinarpe – 2017-01-06T03:56:37.690

I don't have the knowledge of Citrix etc to answer the actual question. Please feel free to update your answer instead. The gist of it is that there are two different methods, the older of which only works on Debian-based platforms from before the introduction of general multiarch support; if you can only describe one method, I suggest you describe the new one instead of the old one (the support has been there for several years already, so even Debian oldstable is covered, IIRC). – tripleee – 2017-01-06T10:34:20.160

Before multiarch there were ad-hoc dedicated packages for supporting i386 on amd64 with different names than the regular packages for libc6 etc; with multiarch, you can say I want this package for that architecture and you can have packages with the same name for multiple architectures installed at the same time. – tripleee – 2017-01-06T10:36:51.293

2

I as well had some trouble with missing dependencies, however the solution I found is a bit simpler than yours ( Thanks to linuxquestions.org ):

  1. Download the squeezy nspluginwrapper at the link:

    https://packages.debian.org/squeeze/...apper/download

  2. Download the Citrix icaclient at the link:

    http://www.citrix.com/downloads/citrix-receiver/linux

  3. Add the 32-bit architecture option $ sudo dpkg --add-architecture i386 $ sudo apt-get update

  4. Install the nspluginwrapper downloaded in step 1 $ sudo dpkg -i nspluginwrapper_1.3.0-1_amd64.deb $ sudo apt-get -f install

  5. install the Citrix ica client $ sudo dpkg -i icaclient_13.0.0.256735_amd64.deb

  6. Trigger another apt-get -f install in order to get the last missing libs and finally install the client $ sudo apt-get -f install

  7. When you start citrix, an error about missing certificates will pop up. If using firefox(iceweasel) you can make citrix happy by adding a symlink to the firefox certificates: $ sudo ln -s /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts

Alex

Posted 2014-02-09T11:39:22.907

Reputation: 174

0

I followed your instructions to the point of installing the icaclient_13.0.0.256735_amd64.deb file. Instead of using terminal, I opened the deb file using gdebi and it worked from there. I didn't have to force it to ignore missing dependencies.

Valerie Anderson

Posted 2014-02-09T11:39:22.907

Reputation: 1