Scaleway Documentationtutorials
install golang ubuntu bionic

Jump toUpdate content

Installing Go on Ubuntu Bionic Beaver (18.04)

Reviewed on 30 June 2021Published on 14 August 2018
  • database
  • compute
  • couchdb
  • nosql
  • cluster
  • data-base

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 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.

  • You have an account and are logged into the Scaleway Console
  • You have configured your SSH Key
  • You have a server running on Ubuntu 18.04 (Bionic Beaver)
  • You have sudo privileges or access to the root user.

Installing Go

  1. Connect to your server 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

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

  2. Open a text editor 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. Run the code directly in Go with the command go run:

    go run hello-world.go
  4. Compile the application if you want to have a program directly available as a binary to distribute it.

    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. Use which to discover the location of the binary. It will return the file path:

    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:

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 now have a working Go development environment. If you want to learn more about writing code in Go, you can follow the interactive tutorial.