Go pakken inneholder en kompilator for Go språket, et objektorientert programmeringsspråk som støttes av Google.
Modern Go er skrevet i Go språket, og krever derfor en Go kompilator for å kompilere den moderne Go kompilatoren. Hvis Go ikke allerede er installert, vil instruksjonene be deg om å kompilere flere eldre versjoner av Go, startende med en som ble skrevet i C, og deretter kompilere nyere versjoner derfra.
Dette kan ta litt tid å bygge. Gjør gjerne noe annet mens dette bygges.
Hvis du ikke har installert Go ennå, må du bootstrappe den. GCC-Go er uegnet da det har flere problemer som hindrer det i å bygge Go ordentlig. Denne prosessen vil bygge en eldre C-versjon, etterfulgt av nyere versjoner som er skrevet fullstendig i Go.
Ikke utfør prosessen i den utpakkede hovedmappen.
Først opprett en liste over tidligere Go versjoner som må lastes ned og bygges:
cat > go-bootstrap-1.26.1 << "EOF"
ceb95ea6aef52c1fb472d3539c6ef68670778b5b/go-ceb95ea6aef52c1fb472d3539c6ef68670778b5b.tar.gz
15da892a4950a4caac987ee72c632436329f62d5/go-15da892a4950a4caac987ee72c632436329f62d5.tar.gz
90a870f1dc49bfcc6ffe95f80fbaf21875198e7a/go-90a870f1dc49bfcc6ffe95f80fbaf21875198e7a.tar.gz
5817e650946aaa0ac28956de96b3f9aa1de4b299/go-5817e650946aaa0ac28956de96b3f9aa1de4b299.tar.gz
96e4e2b1616c3c59577d48abcf2823bf1fdcd2e2/go-96e4e2b1616c3c59577d48abcf2823bf1fdcd2e2.tar.gz
EOF
Bruk Wget, for å laste ned alle Go versjonene som skal brukes til å starte opp den moderne Go:
grep -v '^#' go-bootstrap-1.26.1 | wget -i- -c \ -B https://github.com/golang/go/archive/
Start et underskall som avsluttes ved feil:
bash -e
Nå bootstrap alle Go versjonene:
for go in $(grep -v '^#' go-bootstrap-1.26.1)
do
go=$(basename "$go")
godir=${go%.tar.?z*}
echo "Bootstrapping $godir"
rm -rf $godir
tar -xf $go
pushd $godir
if [ -e src/cmd/dist/a.h ]; then
sed -i '/typedef int bool/d' src/cmd/dist/a.h
fi
cd src
CFLAGS+=" -std=gnu17" sh make.bash -v
popd
export GOROOT_BOOTSTRAP=$PWD/$godir
done; exit
Som root bruker, opprett mappen der
alle Go komponentene skal installeres:
mkdir -pv /opt/go-1.26.1
For å bygge moderne Go, sørg for at du allerede har Go installert eller boostrappet Go.
Hvis du bootstrappet Go, pakker du ut hovednedlastingen fra Go og endrer den til den utpakkede mappen, og angir deretter en variabel som forteller byggesystemet hvor det skal finne den bootstrappede byggingen:
export GOROOT_BOOTSTRAP=$PWD/../go-96e4e2b1616c3c59577d48abcf2823bf1fdcd2e2
Installer Go ved å kjøre følgende kommandoer:
cd src && CGO_ENABLED=1 GOROOT_FINAL=/opt/go-1.26.1 sh make.bash -v
Nå, som root bruker:
ln -sfvn go-1.26.1 /opt/go &&
for i in ../{bin,pkg,src,lib,misc,api,test}; do
cp -va $i /opt/go-1.26.1
done &&
ln -svf /opt/go/bin/go /usr/bin &&
ln -svf /opt/go/bin/gofmt /usr/bin &&
install -vDm644 ../go.env \
-t /opt/go-1.26.1/ &&
rm -rf /opt/go-1.26.1/pkg/bootstrap &&
rm -rf /opt/go-1.26.1/pkg/obj/go-build &&
cp -va ../doc /usr/share/doc/go-1.26.1
Fjern tidligere angitte variabler:
unset GOROOT_BOOTSTRAP