Installing Go on Ubuntu Bionic Beaver (18.04)

Golang Overview

Go is an open source programming language, initially developed by a team at Google and becoming increasingly popular for many applications. The project is backed by many contributors from the open source community.

This tutorial will guide you through the download and the installation of the Go programming language on a Ubuntu Bionic Beaver server. At the end of this guide, you will create your first Go application.


Installing Go

Note: This tutorial is based on a Scaleway Cloud Instance and you are connected directly as root. If you use a non-root user, you have to prefix the commands with sudo.

1 . Connect to your server by using SSH:

ssh root@your_server_ip

2 . Update your apt packet cache and upgrade the software already installed on the server to the latest release:

apt update && apt upgrade -y

3 . Install the Go programming language from the apt repository:

apt install golang -y

4 . Check if go is installed by running the following command:

go version

You should see an output like the following:

root@gopher:~# go version
go version go1.10.1 linux/amd64

5 . Set the GOPATH for your environment:

echo "GOPATH=$HOME/golang" >> ~/.bashrc
echo "export GOPATH" >> ~/.bashrc
echo "PATH=\$PATH:\$GOPATH/bin # Add GOPATH/bin to PATH for scripting" >> ~/.bashrc
source ~/.bashrc

Creating a Hello World Go Application

1 . Start by creating a workspace, where you will store the files of your project:

mkdir -p $HOME/golang/src/hello-world

Note: Go uses a strict [Workspace layout]. You should follow the guidelines to make sure your application will work.

2 . Open a text editor, for example nano and create a file hello-world.go in the working directory. Then copy and paste the following content into it:

package main

import "fmt"

func main() {
    fmt.Printf("Hello world! This is my first Go program.\n")

3 . You can run the code directly in Go with the command go run:

go run hello-world.go

4 . Sometimes you want to have a program directly available as a binary to distribute it. Compile the application by running the following command:

go install hello-world

5 . Once the application is compiled, you can launch it by typing hello-world in your terminal:

bill@golang:~# hello-world
Hello world! This is my first Go program.

6 . To discover the location of the binary, you can use which. It will return the file path of it:

bill@golang:~# which hello-world

Creating a Go Web Application

Go provides the net/http package, which makes it very easy to create web applications:

1 . Create a new workspace and add the following content to the main.go

package main

import (

func main() {
    http.HandleFunc("/", WorldServer)
    http.ListenAndServe(":8080", nil)

func WorldServer(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])

You have now a working Go development environment. If you want to learn more about writing code in Go, you can follow the interactive tutorial.

Discover the Cloud That Makes Sense