Go, or Golang, is an open source programming language from Google. Released in late-2009, it has since become a very popular programming language. Docker and many of its tools are written in Go.

Unlike Python, it doesn’t come pre-installed on most Linux distributions, but I expect that to change soon. Before then, installing it on your favorite Linux distribution is a breeze, as its installation packages are in official package repositories.

In this tutorial, we’ll go through the process of installing it on Linux Mint 18 and 18.1 and Ubuntu 16.04 and 16.10.

Install Go on Linux Mint and Ubuntu

To install Go, fire up a terminal and type the following commands:

# Install Go on Linux Mint 18/18.1 and Ubuntu 16.04/16.10

sudo apt install golang-go

#

That’s just what you need to install it. The Go executable is expected to be in /usr/local/go, but on both Linux Mint 18/18.1 and Ubuntu 16.04/16.10, it’s actually installed in another (custom) location – /usr/bin/go. Because its parent directory – /usr/bin – is already in your PATH. Nothing to worry about here. Go is ready to go.

Test you Go Installation

Here we’ll set up a Go workspace and build an Hello World! program. If Go can run it successfully, then Go is truly set to go. For this tutorial, I’m calling the workspace gostuff, create it and ensure that it’s in your PATH. The following commands show how to create the workspace:

# Create a Go workspace

mkdir ~/gostuff

# This will do the same thing

mkdir $HOME/gostuff

# 

Afterwards, set the GOPATH environment variable to point to the new workspace. The best approach to this is to set it in the .profile file under your home directory. The following commands show how to go about it:

# Open the .profile file

nano ~/.profile

# Set GOPATH environment variable by appending the next command to .profile 

export GOPATH=$HOME/gostuff

# Save and close the file, then activate it

source ~/.profile

#

With that out of the way, we’ll need to create the directory structure for a Go project using the following command:

# Create the Go project's directory structure
# Use the next command if you're using GitHub to manage your project
# Replace "user" with your username on GitHub

mkdir -p ~/gostuff/src/github.com/user/hello

# Use this if you're using GitLab. Replace "user" with your username on GitLab

mkdir -p ~/gostuff/src/gitlab.com/user/hello

# 

Inside the hello directory you created using the last command, create a file called hello.go and copy and paste the following code into it. All the code does is emit the famous Hello, world!.

# Create a file called hello.go

nano ~/gostuff/src/github.com/user/hello/hello.go

# Or

nano ~/gostuff/src/gitlab.com/user/hello/hello.go

# Copy and paste the following code into hello.go

package main

import "fmt"

func main() {
    fmt.Printf("Hello, world!\n")
}

# 

If this is getting to be too long, don’t worry, we’re almost home. But we won’t get there until we compile the Go code using the next command:

# Compile Go code
# If you went the path of GitHub, use this command

go install github.com/user/hello

# Use this if you went the path of GitLab

go install gitlab.com/user/hello

# 

If the code compiled successfully, there should now be an executable in the bin directory of your Go workspace. And if you run the command, you’ll get the expected output, as shown here:

# Run Go command

$GOPATH/bin/hello
# Output follows:
Hello, world!

# 

That’s it! You just installed Go on Linux Mint 18/18.1 or on Ubuntu 16.04/16.10 and verified that it works. To learn more about Go and how to start developing Go applications, click here.

Golang on Linux Mint 18