WebEx on Ubuntu 64bit vs 32bit hell

I have only a vague idea of what I was going into when I decided to install Ubuntu 12.04 LTS 64bit on my new ProjectSputnik machine. I knew that OpenStack is using WebEx for many of its meetings and I knew that WebEx has issues with 64bit Java on Linux. I had no idea though that trying to run 32bit Firefox and 32bit Java on a 64bit machine turned out to waste 5 hours of my time until I gave up. Here is what I did, maybe somebody else smarter than me can help me.

First thing, install openjdk plugin for i386 with a simple apt-get command:

reed@sputacchio:~$ sudo apt-get install icedtea-7-plugin:i386
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
icedtea-7-jre-jamvm:i386 icedtea-netx:i386 libacl1:i386 libatk-wrapper-java-jni:i386
libatk1.0-0:i386 libattr1:i386 libavahi-glib1:i386 libcairo2:i386 libdatrie1:i386
libdbus-glib-1-2:i386 libdrm-intel1:i386 libdrm-nouveau1a:i386 libdrm-radeon1:i386 libdrm2:i386
libgconf-2-4:i386 libgconf2-4:i386 libgdk-pixbuf2.0-0:i386 libgif4:i386 libgl1-mesa-dri:i386
libgl1-mesa-glx:i386 libglapi-mesa:i386 libgnomevfs2-0:i386 libgtk2.0-0:i386 libjasper1:i386
liblcms2-2:i386 libllvm3.0:i386 libnspr4:i386 libnss3:i386 libnss3-1d:i386 libpango1.0-0:i386
libpciaccess0:i386 libpcsclite1:i386 libpixman-1-0:i386 libsqlite3-0:i386 libthai0:i386
libx11-xcb1:i386 libxcb-glx0:i386 libxcb-render0:i386 libxcb-shm0:i386 libxcomposite1:i386
libxcursor1:i386 libxdamage1:i386 libxfixes3:i386 libxft2:i386 libxinerama1:i386 libxml2:i386
libxrandr2:i386 libxtst6:i386 libxxf86vm1:i386 openjdk-7-jre:i386 openjdk-7-jre-headless:i386
Suggested packages:
libglide3:i386 libgnomevfs2-bin:i386 libgnomevfs2-extra:i386 gamin:i386 fam:i386
librsvg2-common:i386 gvfs:i386 libjasper-runtime:i386 liblcms2-utils:i386 ttf-baekmuk:i386
ttf-arphic-gbsn00lp:i386 ttf-arphic-bsmi00lp:i386 ttf-arphic-gkai00mp:i386
ttf-arphic-bkai00mp:i386 pcscd:i386 libnss-mdns:i386 sun-java6-fonts:i386
fonts-ipafont-gothic:i386 fonts-ipafont-mincho:i386 ttf-wqy-microhei:i386 ttf-wqy-zenhei:i386
ttf-indic-fonts-core:i386 ttf-telugu-fonts:i386 ttf-oriya-fonts:i386 ttf-kannada-fonts:i386
ttf-bengali-fonts:i386
Recommended packages:
xml-core:i386 libgnome2-0:i386
The following NEW packages will be installed:
icedtea-7-jre-jamvm:i386 icedtea-7-plugin:i386 icedtea-netx:i386 libacl1:i386
libatk-wrapper-java-jni:i386 libatk1.0-0:i386 libattr1:i386 libavahi-glib1:i386 libcairo2:i386
libdatrie1:i386 libdbus-glib-1-2:i386 libdrm-intel1:i386 libdrm-nouveau1a:i386
libdrm-radeon1:i386 libdrm2:i386 libgconf-2-4:i386 libgconf2-4:i386 libgdk-pixbuf2.0-0:i386
libgif4:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libgnomevfs2-0:i386
libgtk2.0-0:i386 libjasper1:i386 liblcms2-2:i386 libllvm3.0:i386 libnspr4:i386 libnss3:i386
libnss3-1d:i386 libpango1.0-0:i386 libpciaccess0:i386 libpcsclite1:i386 libpixman-1-0:i386
libsqlite3-0:i386 libthai0:i386 libx11-xcb1:i386 libxcb-glx0:i386 libxcb-render0:i386
libxcb-shm0:i386 libxcomposite1:i386 libxcursor1:i386 libxdamage1:i386 libxfixes3:i386
libxft2:i386 libxinerama1:i386 libxml2:i386 libxrandr2:i386 libxtst6:i386 libxxf86vm1:i386
openjdk-7-jre:i386 openjdk-7-jre-headless:i386
0 upgraded, 52 newly installed, 0 to remove and 0 not upgraded.
Need to get 56.9 MB of archives.
After this operation, 116 MB of additional disk space will be used.
Do you want to continue [Y/n]?Y

Next tell Ubuntu that I want to use the 32bit Java plugin using a simple update-alternatives command:

reed@sputacchio:~$ sudo update-alternatives –config mozilla-javaplugin.so
There are 2 choices for the alternative mozilla-javaplugin.so (providing /usr/lib/mozilla/plugins/libjavaplugin.so).

Selection    Path                                                              Priority   Status
————————————————————

  • 0            /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so   1061      auto mode

1            /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so   1061      manual mode
2            /usr/lib/jvm/java-6-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so     1060      manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/java-6-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so to provide /usr/lib/mozilla/plugins/libjavaplugin.so (mozilla-javaplugin.so) in manual mode.

Then I tried to load Firefox and realized that the icedtea plugin is not active. Firefox 64bit evidently doesn’t load the 32bit plugin. Next step: try to find a binary build of Firefox. No luck with that, I wasn’t able to find it anywhere online… I even searched it using Bing, how desperate. Someone on IRC mentioned that Firefox has some multiarch stuff… whatever, doesn’t work for me today.

Next step of a desperate man: install some i386 browser. I tried with chromium in order to avoid messing up with my system, no luck (broken package):

reed@sputacchio:~$ sudo apt-get install chromium-browser:i386
Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
chromium-browser:i386 : Depends: xdg-utils:i386 but it is not installable
Recommends: chromium-browser-l10n:i386 but it is not installable
E: Unable to correct problems, you have held broken packages.
reed@sputacchio:~$

Bit the bullet, tried messed up with Firefox:
reed@sputacchio:~/bin$ sudo apt-get install firefox:i386
Reading package lists… Done
Building dependency tree
Reading state information… Done
The following extra packages will be installed:
firefox-globalmenu:i386 libcairo-gobject2:i386 libcanberra-gtk3-0:i386 libcanberra-gtk3-module:i386 libcanberra0:i386
libdbusmenu-glib4:i386 libdbusmenu-gtk4:i386 libgtk-3-0:i386 libltdl7:i386 libnotify4:i386
libstartup-notification0:i386 libtdb1:i386 libvorbisfile3:i386 libxcb-util0:i386 notification-daemon:i386
Suggested packages:
latex-xft-fonts:i386 firefox-gnome-support:i386 libcanberra-gtk0:i386 libcanberra-pulse:i386 librsvg2-common:i386
gvfs:i386
Recommended packages:
xul-ext-ubufox:i386
The following packages will be REMOVED:
firefox firefox-globalmenu firefox-gnome-support
The following NEW packages will be installed:
firefox:i386 firefox-globalmenu:i386 libcairo-gobject2:i386 libcanberra-gtk3-0:i386 libcanberra-gtk3-module:i386
libcanberra0:i386 libdbusmenu-glib4:i386 libdbusmenu-gtk4:i386 libgtk-3-0:i386 libltdl7:i386 libnotify4:i386
libstartup-notification0:i386 libtdb1:i386 libvorbisfile3:i386 libxcb-util0:i386 notification-daemon:i386
0 upgraded, 16 newly installed, 3 to remove and 0 not upgraded.
Need to get 23.1 MB of archives.
After this operation, 4,423 kB of additional disk space will be used.
Do you want to continue [Y/n]?

There are some packaging issues there too, something is off. Firefox looks ugly, like it’s missing some GNOME integration and, most importantly, doesn’t load any of the plugins. So, back to square one.

I tried also different approach but that depressed me even further

Last option is to investigate creating a 32bit LXC or a full virtual machine. Geez.