Tuesday, October 22, 2013

Using WebEx desktop sharing on Ubuntu 64-bit


Edit: for the most up-to-date solution, see my answer here: http://askubuntu.com/a/363400/18665

Solution:

After much trial and error, I was able to get WebEx desktop sharing working in 64-bit Ubuntu just by installing a few packages (I confirmed this works on Ubuntu 14.04 and 12.04, but I imagine it would work on other versions as well):

  1. Remove unnecessary packages that cause conflicts:
    sudo apt-get -y remove icedtea-7-plugin:i386 icedtea-netx:i386

  2. Install 32-bit Java, a necessary 32-bit library, the Java plugin, and Firefox (WebEx doesn't support Google Chrome on Linux at the moment):
    sudo apt-get install openjdk-7-jre:i386 libxmu6:i386 icedtea-7-plugin firefox

  3. Make sure the correct Java plugin is configured:
    sudo update-alternatives --auto mozilla-javaplugin.so

    If for some reason that doesn't do the trick, you can try this instead:
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
Close and re-open Firefox, and WebEx desktop sharing should work.

Details:

Technically WebEx requires 32-bit Java running on 32-bit Firefox for desktop sharing to work on Linux (http://support.webex.com/support/system-requirements.html‎). But for some reason the above method worked, although it does throw errors (if you open Firefox from the command line). If for some reason there are problems with the above method, you can try installing 32-bit versions of Firefox and the Java plugin. Here are a couple of different methods:

If you're like me and primarily use Google Chrome, the easiest thing to do is to just install 32-bit Firefox and the 32-bit Java plugin from the Ubuntu repositories (note that this will remove the 64-bit version of Firefox that comes with Ubuntu 64-bit):

  1. Install the 32-bit versions of Firefox and the Java plugin (and an additional necessary library):
    sudo apt-get install firefox:i386 icedtea-7-plugin:i386 libxmu6:i386

  2. Change the default Firefox plugin to the 32-bit one:
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so
Even if Firefox is your primary browser, you probably won't notice a difference in using the 32-bit version of Firefox. But if you really do care, here's how to install 32-bit Firefox without uninstalling 64-bit Firefox:

  1. Install the 32-bit Java browser plugin and an additional necessary library:
    sudo apt-get install icedtea-7-plugin:i386 libxmu6:i386

  2. Download 32-bit Firefox (the default downloads are currently 32-bit)
    http://www.mozilla.org/firefox/

  3. Extract the download
    tar xvf firefox-X.X.tar.bz2

  4. Make sure the binary is 32-bit
    file firefox/firefox

    It should say something like:
    firefox/firefox: ELF 32-bit LSB executable

  5. Change the default Firefox plugin to the 32-bit one (don't worry, we'll fix this so you can still use the Java plugin in your 64-bit Firefox):
    sudo update-alternatives --set mozilla-javaplugin.so /usr/lib/jvm/java-7-openjdk-i386/jre/lib/i386/IcedTeaPlugin.so

  6. Re-link the 64-bit plugin for 64-bit Firefox (adjust the path to your version of Java as necessary):
    cd /usr/lib/mozilla/plugins
    sudo ln -s /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so libjavaplugin.so.64

  7. Whenever you want to run the 32-bit Firefox for WebEx, cd to the path where you extracted it and run it (or create a link)
    cd /path/to/firefox
    ./firefox &

  8. To make sure it worked, in the address bar go to about:plugins and verify that the Path contains i386 (it should work if it also contains amd64, but only if i386 comes first. If not, double-check you did the above steps correctly).
One additional note: these solutions still seem to fail the Java plugin verification page, but even the 64-bit version seems to fail. I'm guessing it's missing a library, but whatever it is it wasn't necessary for me to get WebEx working.

3 comments:

  1. you saved my day; struggled all day trying to find out why sharing stopped working. per your findings, it was because i removed without noticing the java 32x flavor.

    installed back and it works as before.

    you are the man!

    thanks a lot

    ReplyDelete
  2. Great tutorial ! Thanks so much !

    Note the 64 bit version of IcedTea plugin must not exists on your system. If so, it should be manually removed, otherwise you'll get an ugly conflict :

    https://bugs.launchpad.net/ubuntu/+source/icedtea-web/+bug/1307823

    ReplyDelete
    Replies
    1. Interesting you should mention that, because I actually found the opposite to be true: the 64-bit version of icedtea-7-plugin is required. But I appreciate you pointing out the package conflict, because that means the 32-bit version must be first uninstalled. I've updated my instructions to reflect that. Thanks!

      Delete