Building the IVPN CLI Client for Linux on a Raspberry Pi

    This was tested using Raspberry Pi OS May 2021 and the Official IVPN CLI Client version 3.3.20 on a 32-bit Raspberry Pi device (armv7l).
    1. Install packages for compiling, building, and connecting:

      $ sudo apt install ruby ruby-dev ruby-full rpm curl git openvpn obfs4proxy libiw-dev
      
      Note: Install WireGuard as required.
    2. Install FPM:

      $ sudo gem install --no-document fpm
      Fetching ...
      ...
      Successfully installed fpm-1.13.1
      
    3. Determine the ARM architecture for your Raspberry Pi device:

      $ uname -m
      

      Install the most recent version of Go via https://golang.org/dl/ for your device’s architecture:

      $ wget https://golang.org/dl/go1.16.6.linux-armv6l.tar.gz
      $ sudo tar -C /usr/local -xzf go1.16.6.linux-armv6l.tar.gz
      $ rm -i go1.16.6.linux-armv6l.tar.gz
      
      Note: The IVPN Client requires Go version 1.13 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.11~1+b6
    4. 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'
      
    5. 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 }')
      $ ./build.sh -v $VER
      ...
      ---------------------------
      DEB package...
      Created package {:path=>"ivpn_3.3.20_armhf.deb"}
      ---------------------------
      ...
      Copying compiled packages to '/home/pi/desktop-app/cli/References/Linux/_out_bin'...
      
    6. Install the new package:

      $ sudo apt install ./_out_bin/ivpn_3.3.20_armhf.deb
      
    7. Check our Command Line Client FAQ for the next steps.



    Related Articles

    Still have questions?

    Get in touch and we'll get back to you in a few hours.

    Contact support

    Interested in privacy?

    Read our latest privacy news and keep up-to-date on IVPN services.

    Visit IVPN Blog
    Spotted a mistake or have an idea on how to improve this page?
    Suggest an edit on GitHub.