Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?

To install Pulse Secure for Ubuntu 20.04, it is a bit complicated since the support isn't great.

First, we'll want to go through the form at https://www.pulsesecure.net/trynow/client-download/. You'll get an email with download links to the latest versions of pulse secure. Download the Linux one with the deb file and then you can install it using dpkg from your downloads folder.

$ cd ~/Downloads
$ sudo dpkg -i ps-pulse-linux-[your-pulse-version]-ubuntu-debian-64-bit-installer.deb

Now, we'll want to go into the pulse directory and install the dependencies. We update the shell script file first to recognize Ubuntu 20.

$ cd /usr/local/pulse/
$ sudo sed -i "s/UBUNTU_VER\ \=\ 18\ \]/& \|\|\ [\ \$UBUNTU_VER\ \=\ 20 \]/" PulseClient_x86_64.sh
$ ./PulseClient_x86_64.sh install_dependency_packages
$ sudo apt-get install libenchant1c2a

Next, we'll want to create an extras and debs folder inside the pulse folder.

$ sudo mkdir /usr/local/pulse/extra
$ sudo mkdir /usr/local/pulse/debs   

Then we'll want to download the following debs into /usr/local/pulse/debs/.

$ cd /usr/local/pulse/debs
$ sudo wget http://archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu60_60.2-3ubuntu3_amd64.deb
$ sudo wget http://archive.ubuntu.com/ubuntu/pool/universe/w/webkitgtk/libjavascriptcoregtk-1.0-0_2.4.11-3ubuntu3_amd64.deb
$ sudo wget http://archive.ubuntu.com/ubuntu/pool/universe/w/webkitgtk/libwebkitgtk-1.0-0_2.4.11-3ubuntu3_amd64.deb

Next we will extract the debs into the extras folder.

$ cd /usr/local/pulse/extra
$ sudo dpkg -x /usr/local/pulse/debs/libicu60_60.2-3ubuntu3_amd64.deb .
$ sudo dpkg -x /usr/local/pulse/debs/libjavascriptcoregtk-1.0-0_2.4.11-3ubuntu3_amd64.deb .
$ sudo dpkg -x /usr/local/pulse/debs/libwebkitgtk-1.0-0_2.4.11-3ubuntu3_amd64.deb .

Then we'll want to add the library path to our shell startup file and for convience, the pulse secure command can be aliased as well. Likely .bashrc if you're using bash or .zshrc if zsh.

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pulse/extra/usr/lib/x86_64-linux-gnu/
alias vpn=/usr/local/pulse/pulseUi

By default, pulse secure will have its output go directly to the terminal from which you ran it from. If you'd like to keep those separate and detach the program from the terminal when you run it, you can instead create the following alias: alias vpn="nohup /usr/local/pulse/pulseUi >| ~/.pulse_secure/pulse/pulse-output.log &" (thanks @GreyCardinal!)

Lastly, we want to make sure to source that same shell startup file e.g. source ~/.bashrc so the changes are loaded. We can then startup the client.

$ vpn

If you get disconnected and the GUI is stuck in a "reconnecting" status, you can use pulsesvc -K to kill the process.

Resources

@tliggett

This comment has been minimized.

Copy link

@tliggett tliggett commented Jun 15, 2020

Worked almost perfect...

I was still getting an error that another package was missing but this fixed it:
sudo apt-get install libenchant1c2a

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Jun 15, 2020

@tliggett I think it's in the second block of commands, maybe you missed it? Thanks for the feedback though, glad it works for others too.

@tliggett

This comment has been minimized.

Copy link

@tliggett tliggett commented Jun 15, 2020

@eugenetriguba yikes I must have. My bad 😆

@Maxpowerfreak

This comment has been minimized.

Copy link

@Maxpowerfreak Maxpowerfreak commented Oct 4, 2020

Thanks a lot for this guide! Worked perfectly for me :)

@jrowlingson

This comment has been minimized.

Copy link

@jrowlingson jrowlingson commented Oct 6, 2020

Worked on 20.10

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Oct 6, 2020

@Maxpowerfreak @jrowlingson Great to hear, glad it helped you two out!

@GreyCardinal

This comment has been minimized.

Copy link

@GreyCardinal GreyCardinal commented Oct 12, 2020

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Oct 12, 2020

@GreyCardinal Thanks! Updated the gist to avoid having to update it for each new version

@GreyCardinal

This comment has been minimized.

Copy link

@GreyCardinal GreyCardinal commented Oct 14, 2020

@eugenetriguba, thanks.
One more improvement proposal:
alias vpn="nohup /usr/local/pulse/pulseUi &"
There may be better way to detach the popup window from terminal, but this works for me.
*There may be better way to propose changes in github, but for this case I was too lazy to search (=

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Oct 14, 2020

@GreyCardinal oh that is way better, thanks! Nice not to have the output clutter up the terminal. Perhaps nohup /usr/local/pulse/pulseUi > /tmp/pulse-output.log & to avoid having nohup.out files in the current directory from where you run it?

Edit: or possibly to ~/.pulse_secure/pulse/pulse-output.log instead of in /tmp

@cceconi

This comment has been minimized.

Copy link

@cceconi cceconi commented Nov 17, 2020

On Ubuntu 20.04 LTS fresh install, work perfect but a package is missing for Gtk-Message, solved by installing it:

sudo apt-get install libcanberra-gtk-module
@alxbrb13

This comment has been minimized.

Copy link

@alxbrb13 alxbrb13 commented Nov 23, 2020

Worked perfectly when I moved to Ubuntu 20.04 LTS a week ago,
Then I tried again this morning and got this message :
./pulseUi: error while loading shared libraries: libwebkitgtk-1.0.so.0: cannot open shared object file: No such file or directory
And $ vpn not recognized anymore

Doing again last 2 lines worked to solve it, but fix is temporary as soon as I close the terminal

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Nov 23, 2020

@alxbrb13 You said "Doing again last 2 lines worked to solve it, but fix is temporary as soon as I close the terminal." I assume by last two lines you mean these two lines:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pulse/extra/usr/lib/x86_64-linux-gnu/
alias vpn=/usr/local/pulse/pulseUi

Are you running those two lines in your terminal session or have you put them in your shell's startup file (such as ~/.bashrc for bash)? Any exports or aliases you do in a session are gone the next session. They have to be in your startup file so they're run everytime

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Nov 23, 2020

@cceconi It looks like that is a package for sound with GTK? Does the pulse secure app have auditory feedback for which that package is needed? I've never needed it for using the app

@cceconi

This comment has been minimized.

Copy link

@cceconi cceconi commented Nov 23, 2020

@eugenetriguba I don't know. I just saw this message at warning level when the app was launched in the terminal. And I found this lib was missing. But you're right, the app works even without it. The goal was to be as clean as possible.

@paulinebaanders

This comment has been minimized.

Copy link

@paulinebaanders paulinebaanders commented Dec 8, 2020

@alxbrb13 You said "Doing again last 2 lines worked to solve it, but fix is temporary as soon as I close the terminal." I assume by last two lines you mean these two lines:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pulse/extra/usr/lib/x86_64-linux-gnu/
alias vpn=/usr/local/pulse/pulseUi

Are you running those two lines in your terminal session or have you put them in your shell's startup file (such as ~/.bashrc for bash)? Any exports or aliases you do in a session are gone the next session. They have to be in your startup file so they're run everytime

First: thanks this was really helpful! How do you put it in your shell's startup file? And how can I find my shell startup file?

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Dec 8, 2020

@paulinebaanders It depends on your shell. If you're on Ubuntu, I'll assume you're using bash as your shell since that is the default.

Run these

$ echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/pulse/extra/usr/lib/x86_64-linux-gnu/" >> ~/.bashrc
$ echo "alias vpn=/usr/local/pulse/pulseUi" >> ~/.bashrc
$ source ~/.bashrc

It appends those lines into your ~/.bashrc file and re-runs the commands in ~/.bashrc for the current shell.

See https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html, in particular, Invoked as an interactive non-login shell.

@alxbrb13

This comment has been minimized.

Copy link

@alxbrb13 alxbrb13 commented Dec 8, 2020

Yes it worked ! :) Thanks a lot

@martinda

This comment has been minimized.

Copy link

@martinda martinda commented Dec 15, 2020

Anyone getting

/var/lib/dpkg/info/pulse.prerm: line 213: [: =: unary operator expected
/var/lib/dpkg/info/pulse.prerm: line 215: [: =: unary operator expected
@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Dec 15, 2020

@martinda Some google searches turned up these discussions that may be of use to you. I haven't encountered the error before.

https://community.pulsesecure.net/t5/Pulse-Desktop-Clients/Unable-to-install-on-Ubuntu-18-04-PopOS/td-p/40987
https://remote.uwo.ca/downloads/PulseSecureVPNclientonLinux.pdf

It seems these are all the same error with a /var/lib/dpkg/info/pulse.postinst file though, not pulse.prerm. I'm not familiar with what the pulse.prerm file is.

It's possible this may be the root of the error and maybe that file could be modified manually. Although that is less ideal.

@sicelo

This comment has been minimized.

Copy link

@sicelo sicelo commented Dec 15, 2020

http://go.pulsesecure.net/E0f0S0IWNR20q0QE340pN0e - new version

@GreyCardinal Thanks! How to get these links? My IT department insists they don't support Linux and are generally not interested in long discussions either. So I'm on my own (which, I guess, is self-inflicted pain) :-P

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Dec 15, 2020

@sicelo If you fill out the form at https://www.pulsesecure.net/trynow/client-download/, it'll email you download links such as that one for the latest pulse-secure version for various systems, including deb and rpm files.

@sicelo

This comment has been minimized.

Copy link

@sicelo sicelo commented Dec 15, 2020

Thanks so much

@edridgedsouza

This comment has been minimized.

Copy link

@edridgedsouza edridgedsouza commented Dec 17, 2020

Thank you! You've saved my ability to work from home on my Ubuntu machine. Caveat that sometimes the .deb installer will come directly from your organization rather than from Pulse

@peca-commits

This comment has been minimized.

Copy link

@peca-commits peca-commits commented Jan 4, 2021

Thank you! It worked like a charm on my ubuntu 20.04.

@lse-ableton

This comment has been minimized.

Copy link

@lse-ableton lse-ableton commented Jan 7, 2021

Wonderful, worked perfectly on 20.10! Thanks :)

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Jan 8, 2021

@martinda I have a feeling this is likely because you may be using a distro that is based off Ubuntu. Try reading through https://community.pulsesecure.net/t5/Pulse-Desktop-Clients/Unable-to-install-on-Ubuntu-18-04-PopOS/td-p/40987

@guswelter

This comment has been minimized.

Copy link

@guswelter guswelter commented Jan 25, 2021

Worked perfect, thank you very much!

@kvenkman

This comment has been minimized.

Copy link

@kvenkman kvenkman commented Jan 25, 2021

Also, the contact form at https://www.pulsesecure.net/trynow/client-download/ does not load in Firefox (v84.0.2). Seems to load in Chrome (v88.0.4324.96) though

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Jan 26, 2021

@kvenkman Are you sure this isn't possibly some sort of local issue? I'm not sure what the issue could be, but the page loads for me and I get an email from filling out the form

$ firefox --version
Mozilla Firefox 84.0.2
@kvenkman

This comment has been minimized.

Copy link

@kvenkman kvenkman commented Jan 26, 2021

I'm able to reproduce the issue on both Ubuntu 18.04 and Windows 10, so I'm not sure? I tried enabling the website cookies and disabling my adblocker, but neither helped.

@daveman1010221

This comment has been minimized.

Copy link

@daveman1010221 daveman1010221 commented Feb 15, 2021

Very nice write-up. Thanks.

@majago-cpu

This comment has been minimized.

Copy link

@majago-cpu majago-cpu commented Feb 17, 2021

Hi! I'm trying to install it in Ubuntu 20.04 too, but every time i try to run the sudo dpkg command, i get

"rm: cannot remove '/usr/local/pulse/libwebp.so.6': No such file or directory"

Getting kind of desperate. Anyone can help?

@himanshutraveloka

This comment has been minimized.

Copy link

@himanshutraveloka himanshutraveloka commented Feb 19, 2021

for those who are encountering.
pulsesvc: command not found

cd /usr/local/pulse/
./pulsesvc -K

@da0ist

This comment has been minimized.

Copy link

@da0ist da0ist commented Mar 3, 2021

Hi! I'm trying to install it in Ubuntu 20.04 too, but every time i try to run the sudo dpkg command, i get

"rm: cannot remove '/usr/local/pulse/libwebp.so.6': No such file or directory"

Getting kind of desperate. Anyone can help?

I don't think that is a significant error.

@da0ist

This comment has been minimized.

Copy link

@da0ist da0ist commented Mar 3, 2021

Hangin at the attached screen. Terminal shows:

jeward@T14:~$ vpn

(pulseUi:55106): libsoup-CRITICAL **: 16:23:38.998: soup_cookie_jar_get_cookies: assertion 'SOUP_IS_COOKIE_JAR (jar)' failed

(pulseUi:55106): libsoup-CRITICAL **: 16:23:39.010: soup_cookie_jar_get_cookies: assertion 'SOUP_IS_COOKIE_JAR (jar)' failed

(pulseUi:55106): libsoup-CRITICAL **: 16:23:39.012: soup_cookie_jar_get_cookies: assertion 'SOUP_IS_COOKIE_JAR (jar)' failed

(pulseUi:55106): libsoup-CRITICAL **: 16:23:39.015: soup_cookie_jar_get_cookies: assertion 'SOUP_IS_COOKIE_JAR (jar)' failed

(pulseUi:55106): libsoup-CRITICAL **: 16:23:39.019: soup_cookie_jar_get_cookies: assertion 'SOUP_IS_COOKIE_JAR (jar)' failed

Screenshot from 2021-03-03 16-24-37

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Mar 4, 2021

@da0ist I haven't used Ubuntu in a while so it may be different. But if your version of pulse secure is 9.1r11, there were some significant changes. The maintainer of the arch linux user package for pulse secure (see discussion here https://aur.archlinux.org/packages/pulse-secure/) wasn't able to get the host checker working on that version. I've still been using version 9.1r9

@lumos21

This comment has been minimized.

Copy link

@lumos21 lumos21 commented Mar 24, 2021

I'm using it on lunbuntu 20 and encoutered error like:
rm: cannot remove '/usr/local/pulse/libwebp.so.6': No such file or directory

Your solution helped and thanks!

@saliko026

This comment has been minimized.

Copy link

@saliko026 saliko026 commented Mar 29, 2021

wonderful,
thank you very much it was really helpful for me

@trongan93

This comment has been minimized.

Copy link

@trongan93 trongan93 commented Apr 4, 2021

Great,
It works for me on Ubuntu 20.04.2 LTS.
Thanks for your helpful guideline.

@Youw

This comment has been minimized.

Copy link

@Youw Youw commented May 20, 2021

@eugenetriguba why did you choose to extract packages under /usr/local/pulse/extra and workaround it with LD_LIBRARY_PATH, instead of simply installing those into a system, as usual (i.e. sudo dpkg -i libjavascriptcoregtk-1.0-0_2.4.11-3ubuntu3_amd64.deb libicu60_60.2-3ubuntu3_amd64.deb libwebkitgtk-1.0-0_2.4.11-3ubuntu3_amd64.deb).
Tried installing on my system, and everything works flawlessly so far.

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented May 20, 2021

@Youw Under the resources section, you'll find this post: https://askubuntu.com/a/1142879

There's another answer in that post that uses your approach: https://askubuntu.com/a/1222612

Either one works fine. I have no strong preference. This gist is just a combination of stuff already out there on the web to put it in one place so I could refer back to it.

@Youw

This comment has been minimized.

Copy link

@Youw Youw commented May 20, 2021

Sounds reasonable. My preference on the second approach is that it is simply less steps to achieve (practically) same result.
I asked only because I assumed there could be issues with having those packages installed, which I didn't know or didn't face yet.
I guess it makes it "no known issues so far". Thanks.

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented May 20, 2021

@Youw Agreed. I think simpler is generally better. I'll look into it, try it out, and consider updating the gist if I don't come across any issues. Thanks for bringing it up!

@AlFalahTaieb

This comment has been minimized.

Copy link

@AlFalahTaieb AlFalahTaieb commented Jun 16, 2021

image
Receiving this after cliking on connect

@Youw

This comment has been minimized.

Copy link

@Youw Youw commented Jun 16, 2021

sudo apt install libcanberra-gtk-module
@miedzikd

This comment has been minimized.

Copy link

@miedzikd miedzikd commented Jul 5, 2021

I sent form from https://www.pulsesecure.net/trynow/client-download/ - but have not recived any email... Maybe this is because Pulse Secure is Ivanti now ;/

@eugenetriguba

This comment has been minimized.

Copy link
Owner Author

@eugenetriguba eugenetriguba commented Jul 5, 2021

@miedzikd You can find downloads for it hosted on other sites if needed by doing a web search. For example: http://webdev.web3.technion.ac.il/docs/cis/public/ssl-vpn/ps-pulse-ubuntu-debian.deb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment