• Installation du compilateur Go
$ #Télécharger les sources pour son architecture (ici linux / amd64)
$ cd $HOME
$ mkdir -p tmp
$ cd tmp
$ wget https://go.dev/dl/go1.20.linux-amd64.tar.gz

$ #Décompresser l'archive
$ tar xvfz go.*tar.gz (Un sous répertoire go sera créé)
$ mv ./go $HOME/
$ cd $HOME

$ #Définir le chemin vers GO 
$ export GOROOT=$HOME/go

$ #Définir la variable GOPATH (emplacement des librairies externes)
$ mkdir -p $HOME/go-workspace
$ export GOPATH=$HOME/go-workspace

$ #Ajouter les binaires GO dans le path
$ export PATH=$HOME/go/bin:$PATH

GOROOT est l'emplacement de l'installation de GO
GOPATH est l'emplacement pour les packages externes

  • Compilation Hello World

$vim tmp/test.go

package main

func main(){
	println("Hello world")
}

$ go build test.go
$ ./test.go
Hello

  • Téléchargement de packages externes Go

Cet exemple télécharge les sources du projet u-root dans le répertoire des ressources externes ($GOPATH)

$ go get github.com/u-root/u-root
$ find  ~/go-workspace/src/github.com/u-root
...

  • Proxies et vérifications TLS

Dans certains cas (réseau sécurisé d'entreprise avec proxies), il peut être nécessaire de définir des proxies ou de désactiver les vérifications SSL.

Ce contournement est bien sur déconseillé ...

$ // Déclaration d'un proxy
$ export http_proxy="http://yourproxy:port"
$ export https_proxy="http://yourproxy:port"

$ // Désactivation des vérifications SSL
$ export GOINSECURE="proxy.golang.org/*,golang.org/*,github.com,github.com/*"