Help Center
Building the IVPN CLI Client for Linux on a Raspberry Pi
-
Install packages for compiling, building, and connecting:
$ sudo apt install ruby ruby-dev ruby-full rpm curl git openvpn libiw-dev
-
Install FPM:
$ sudo gem install --no-document fpm Fetching ... ... Successfully installed fpm-1.15.1
-
Determine the ARM architecture for your Raspberry Pi device:
$ uname -m
32-bit systems will be identfied with
armv6l
orarmv7l
and 64-bit systems withaarch64
.Install the most recent version of Go via https://golang.org/dl/ for your device’s architecture:
$ wget https://go.dev/dl/go1.20.5.linux-arm64.tar.gz $ sudo tar -C /usr/local -xzf go1.20.5.linux-arm64.tar.gz $ rm -i go1.20.5.linux-arm64.tar.gz
Note: The IVPN Client requires Go version 1.18 or higher and the Raspberry Pi OS repositories include an older version of the golang package:
$ apt-cache policy golang golang: Installed: (none) Candidate: 2:1.15~1
-
Add Go to the
$PATH
and define the$GOPATH
variable by adding two lines to the bottom of~/.profile
, then source the file:$ echo -e "\n\nPATH=$PATH:/usr/local/go/bin\nGOPATH=$HOME/go" >> ~/.profile $ source ~/.profile
Verify the changes and add the
$GOPATH
folder:$ which go /usr/local/go/bin/go $ mkdir -v $GOPATH mkdir: created directory '/home/pi/go'
-
Follow the build instructions for the Linux base package (daemon + CLI) from the IVPN App’s GitHub page:
$ git clone https://github.com/ivpn/desktop-app.git $ cd desktop-app/cli/References/Linux/ $ CL="https://raw.githubusercontent.com/ivpn/desktop-app/master/CHANGELOG.md" $ VER=$(curl -s $CL | grep "## Version" | head -n 1 | awk '{ print $3 }') $ echo $VER $ ./build.sh -v $VER ... --------------------------- DEB package... Created package {:path=>"ivpn_3.10.23_arm64.deb"} --------------------------- ... Copying compiled packages to '/home/pi/desktop-app/cli/References/Linux/_out_bin'...
-
Install the new package:
$ sudo apt install ./_out_bin/ivpn_3.10.23_arm64.deb
-
Check our Command Line Client FAQ for the next steps.
Related Articles
- Linux - Fedora Silverblue
- Webpages do not load or DNS leaks when connecting via NetworkManager
- Managing the IVPN Linux CLI client at System Boot
- Autostart WireGuard in systemd
Still have questions?
Get in touch and we'll get back to you in a few hours.
Contact supportInterested in privacy?
Read our latest privacy news and keep up-to-date on IVPN services.
Visit IVPN Blog