Installer Golang

Machine cible 32 bits

wget https://go.dev/dl/go1.22.4.linux-386.tar.gz
mv /usr/local/go/ /tmp/
tar -C /usr/local -zxvf go1.22.4.linux-386.tar.gz 

echo 'export GOROOT=/usr/local/go' | sudo tee -a /etc/profile
echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee -a /etc/profile
source /etc/profile

Machine cible 64 bits

wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz

sudo  rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz

echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.profile  && source ~/.profile

Alias dans bashrc

echo "alias gob='go mod tidy && gofmt -s -w . && go build . '" >> ~/.bashrc && source ~/.bashrc

Tests

Fichier source:

mkdir -p ~/projects/hello/ && cd ~/projects/hello/
go mod init example.com/hello
cat <<EOF >> main.go
package main
import (
    "fmt"
    "io/ioutil"
    "log"
    "net/http"
)
func main() {
    //resp, err := http.Get("http://www.debreuil.fr")

    // reset proxy in http RoundTripper
    var defaultTransport http.RoundTripper = &http.Transport{Proxy: nil}
    client := &http.Client{Transport: defaultTransport}

    resp, err := client.Get("http://www.debreuil.fr")

    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    body, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(string(body))
}
EOF

compilation

go mod tidy && gofmt -s -w . && go build .

execution

./hello

Previous Post