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?
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?
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.)
.deb
installericaclient_13.0.0.256735_amd64.deb
dpkg --add-architecture i386
apt-get install ia32-libs ia32-libs-i386 libglib2.0-0:i386 libgtk2.0-0:i386
dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
lib32asound2
and nspluginwrapper
. The installation will work without these libraries.ldd /opt/Citrix/ICAClient/wfica
not found
in the output:
apt-get remove icaclient
ldd
output and package names.)dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
cp --verbose /usr/share/ca-certificates/mozilla/* /opt/Citrix/ICAClient/keystore/cacerts/
application/x-ica
.
/opt/Citrix/ICAClient/wfica.sh
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:
icaclient
: apt-get remove icaclient
icaclient
(using the .deb
file from Citrix)
dpkg --force-all --install icaclient_13.0.0.256735_amd64.deb
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?
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 ):
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
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.
1
If you have
– tripleee – 2015-07-29T07:12:35.423dpkg-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 https://wiki.debian.org/Multiarch@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
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. – tripleee – 2017-01-06T10:36:51.293