Pulse Secure on Ubuntu 17.04

Posted on Aug 09, 2017


The problem

In the course of my work, I decided that after having to return my MacBook to my former employer, it would be prudent to have a UNIX environment in which to develop. I pulled out a favorite laptop of mine that had been collecting dust under my bed with a broken screen, installed Ubuntu Gnome 17.04 on it, and started configuring my work environment. However, to my dismay I found myself struggling to get our VPN software, Pulse Secure, working.

I had always encountered problems with our VPN services on older versions of Ubuntu with older versions of Juniper's Network Connect software, and I was always able to get up and running with, as it's been referred to in some circles,"The Mad Scientist Post", but this wasn't the problem I was having anymore, and these days we're using Pulse Secure.

I was excited to find that Pulse Secure had both rpm and deb packages available for easy installation. I downloaded pulse-8.2R5.i386.deb from my work's intranet and set to work. Software Center, Gdebi or dpkg -i all work for installing the package, but when I selected "Pulse Secure" from my application list, for the life of me I could not get the GUI to appear.

After exploring the package's configuration directory at /usr/local/pulse, I determined that the GUI is launched with the application /usr/local/pulse/pulseUi. From the terminal, I tried to run this manually with

./pulseUi

It returned the following error:

/usr/local/pulse/pulseUi: error while loading shared libraries: libwebkitgtk-1.0.so.0: cannot open shared object file: No such file or directory

The solution

So it's missing a dependency. That makes sense. After a bit of research, I determined that this is because Pulse Secure is using elements of the Gimp ToolKit (GTK+) 1.x, which has been deprecated in favor of GTK+ 3.x at this point. "Easy fix," I thought to myself. "I'll just install the package." And I did.

sudo apt-get install libwebkitgtk-1.0

Again, I was excited to find that the installation completes without a hitch. No problems, no missing dependencies, no deprecated packages. I tried launching pulseUi again, and I was still returning the same error message. What the hell, man?

A bit more tinkering and trying different packages and I had found the solution. Pulse was looking for the 32 bit version of the GTK+ 1.x library. So I installed that one.

sudo apt-get install libwebkitgtk-1.0-0:i386

Last, I needed to provide the library path to the shared library loader. So I opened up my .zshrc file (it will be .bashrc if you use bash instead of zsh) and exported the path.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/i386-linux-gnu

I reloaded my profile by running:

. ~/.zshrc

Next, I proceeded to try to launch the application again with the new library in place. At this point, the GUI launched, but when I configured my connection and clicked connect, it still failed, but with a new error message (hey, at least it's progress).

/sbin/ifconfig: not found

At this point, I recalled that the ifconfig tool had been deprecated in favor of "ip address", but that one could get it back by installing the net-tools package.

sudo apt-get install net-tools

At last, I returned to the /usr/local/pulse directory and tried running pulseUI again. The GUI launched. Success! I clicked connect next to my connection. Success! Moral of the story: There's dependencies, install'em!