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?
3 Answers
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.)
- 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
- Be sure to select the 64-bit
dpkg --add-architecture i386
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.
dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
- Ignore the warnings about missing dependencies:
lib32asound2
andnspluginwrapper
. The installation will work without these libraries.
- Ignore the warnings about missing dependencies:
- Check there are no missing dependencies:
ldd /opt/Citrix/ICAClient/wfica
- If you see
not found
in the output:- Uninstall the Citrix ICA Client:
apt-get remove icaclient
- 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.) - Reinstall the Citrix ICA Client:
dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
- Uninstall the Citrix ICA Client:
- If you see
- 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/
- If you are using KDE, edit the file association
application/x-ica
.- Add a new application:
/opt/Citrix/ICAClient/wfica.sh
- Add a new application:
- 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:
- Uninstall package
icaclient
:apt-get remove icaclient
- Install other packages
- Reinstall package
icaclient
(using the.deb
file from Citrix)dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
- 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?
-
1If you have
dpkg-add-architecture
you cannot haveia32-libs-*
-- these are different solutions. On legacy Debian, you could installia32-libs
on amd64 for 32-bit support; from Wheezy onwards, the superseding -- and much superior, much more general -- solution isdpkg-add-architecture i386
. See also wiki.debian.org/Multiarch– tripleeeJul 29, 2015 at 7:12 -
@tripleee: I suggest you expand your comment into a separate answer. Jan 6, 2017 at 3:56
-
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).– tripleeeJan 6, 2017 at 10:34
-
Before multiarch there were ad-hoc dedicated packages for supporting
i386
onamd64
with different names than the regular packages forlibc6
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.– tripleeeJan 6, 2017 at 10:36
I as well had some trouble with missing dependencies, however the solution I found is a bit simpler than yours ( Thanks to linuxquestions.org ):
Download the squeezy nspluginwrapper at the link:
Download the Citrix icaclient at the link:
Add the 32-bit architecture option
$ sudo dpkg --add-architecture i386 $ sudo apt-get update
Install the nspluginwrapper downloaded in step 1
$ sudo dpkg -i nspluginwrapper_1.3.0-1_amd64.deb $ sudo apt-get -f install
install the Citrix ica client
$ sudo dpkg -i icaclient_13.0.0.256735_amd64.deb
Trigger another apt-get -f install in order to get the last missing libs and finally install the client
$ sudo apt-get -f install
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
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.