Here is a little memento for those who wish to install Go (1.9) on their Ubuntu machine (17.10). As a reminder, Go is a compiled language, meaning no need to install Go on the machine where your application will run.
Update repositories and security patches, just in case:
sudo apt-get update
sudo apt-get -y upgrade
Download and install Go:
sudo curl -O https://storage.googleapis.com/golang/go1.9.linux-amd64.tar.gz  # Download archive. Change the archive's name if you need another version of Go or another system architecture
sudo tar -xvf go1.9.linux-amd64.tar.gz  # Extract archive
sudo mv go /usr/local  # Move binaries to /usr/local
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile  # Update our bash profile so Go is in the PATH
source ~/.profile  # Update profile
Go is now installed ! Create your project and initialize environment variables:
mkdir $HOME/my_project
mkdir $HOME/my_project/src
mkdir $HOME/my_project/src/my_app
export GOPATH=$HOME/my_project
Then create your app:
vim $HOME/my_project/src/my_app/my_app.go
And put the following code in it (display a mere Hello World):
package main
import "fmt"
func main() {
    fmt.Printf("hello world\n")
}
Compile app:
go install my_app
If everything went well, an executable has been created inside a new bin folder. Run it:
$HOME/my_project/bin/my_app
Finally you should get:
hello world
In order to understand the differences between go install, go build, and go run read this. And if you cannot or do not want to install Go on your machine, have a look at this Docker image.
Enjoy !
