Prerequisites

a) OS Distribution

You can install the gopaddle command-line utility 'gpctl' in an Ubuntu 18.04 LTS distribution, either on a host or a VM, or a docker container.

b) Dependencies on the Host/VM running Ubuntu 18.04 LTS

These steps are required, even if you desire to install gpctl inside a docker container

1. Make sure docker service is running:

$ systemctl status docker

The output of the above command should have the line:

Active: active (running)

2. If there is a user group called 'docker' created already, and if the current user is already added to this group, you can skip this step:

$ sudo groupadd docker 
$ sudo usermod -aG docker <current-user-name>

If you had to perform the above step, then:

  • Log out and log back in so that your group membership is re-evaluated.

  • On a desktop Linux environment such as X Windows, log out of your session completely and then log back in.

  • If testing on a virtual machine, if the above do not work, restart the virtual machine for changes to take effect.

3. Verify that you can run docker commands without sudo:

Example:

$ docker images

The above command should not show any 'permission denied' errors.

Additional steps to run gpctl inside a Docker container

If you are running inside a container, then, execute the below to set up docker container and login into the container, before you can proceed with the installation of gpctl tool:

On the Host/VM running Ubuntu 18.04 LTS, run the following command:

$ docker run -it -v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker ubuntu:18.04 /bin/bash

c) Install Dependencies

If you are executing on Host/VM running Ubuntu 18.04 LTS:

$ sudo apt-get update 
$ sudo apt-get install -y wget cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev jq net-tools iproute2 strace bc
$ sudo gem install github-linguist -v 7.17.0

If you are executing inside a docker container:

# apt-get update 
# apt-get install -y wget cmake pkg-config libicu-dev zlib1g-dev libcurl4-openssl-dev libssl-dev ruby-dev jq net-tools iproute2 strace bc
# gem install github-linguist -v 7.17.0

Here is a quick reference on the installation requirements based on the local environment.

Host Machine

VM

Docker

Docker Service

NA

Docker group

NA

User in Docker group

NA

Execute and validate docker command

User Mode

root & non-root

root & non-root

root

Extra

NA

NA

Mount docker socket and docker binary inside the container

d) Install gpctl

1. Create a test directory, and download the gpctl binary:

$ mkdir <gpctl-testdir> 
$ cd <gpctl-testdir>
$ wget https://gpctl.s3.ap-southeast-1.amazonaws.com/4.2.3/gpctl

2. Perform check sum to ensure the right binary is installed.

$ sum gpctl 
13191 8544

3. Change permission for the binary:

$ chmod +x gpctl

4. Set the PATH variable to include the absolute path to the test directory, and check if gpctl binary is recognized:

$ export PATH=$PATH:<gpctl-testdir> 
$ which gpctl
<gpctl-testdir>/gpctl

5. Check whether all the required dependencies are available in the local system using the below command before you could proceed with the initialization process.

$ gpctl -v chkdeps
O.S distribution discovered on the system: ubuntu 18.04
Supported O.S distributions: ubuntu 18.04
Supported O.S version check ... SUCCEEDED
wget: yes
cmake: yes
pkg-config: yes
libicu-dev: yes
zlib1g-dev: yes
libcurl4-openssl-dev: yes
libssl-dev: yes
ruby-dev: yes
jq: yes
net-tools: yes
iproute2: yes
strace: yes
bc: yes
All dependent packages are installed
Checking version of github-linguist ...
Expected version: (7.17.0) Installed version: (7.17.0)
Dependent packages check ... SUCCEEDED


Did this answer your question?