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