
~/GO e PATH em /etc/profile. Isso é de 2019. Abaixo: tarball oficial do go.dev (série Go 1.27, lançada em agosto de 2026), snap e apt — com go.mod, sem GOPATH artesanal.Go nasceu no Google em 2007 (Pike, Thompson, Griesemer) e virou open source em 2009 — contamos essa saga em A história da linguagem Go. Compila rápido, gera um binário, concorrência com goroutine. Docker, Kubernetes, Terraform: Go. Em 2019 este howto baixava um script. Em 2026 o caminho oficial é o tarball do go.dev/dl.
Tarball oficial (recomendado)
Puxa a versão estável do momento, confere a arch e instala em /usr/local/go. Não extraia em cima de uma árvore antiga — o próprio Go pede para apagar antes:
VER=$(curl -fsSL 'https://go.dev/VERSION?m=text' | head -n1)
case $(uname -m) in
x86_64) GOARCH=amd64 ;;
aarch64) GOARCH=arm64 ;;
*) echo "arch não suportada"; exit 1 ;;
esac
cd /tmp
curl -fLO "https://go.dev/dl/${VER}.linux-${GOARCH}.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "${VER}.linux-${GOARCH}.tar.gz"
PATH no seu usuário, não em /etc/profile de root:
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.profile
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >> ~/.profile
source ~/.profile
go version
O GOPATH padrão já é ~/go. Não precisa mkdir ~/GO. Checksum SHA-256 de cada arquivo está em go.dev/dl. A partir do 1.21 o toolchain pode baixar sozinho uma versão mais nova se o go.mod pedir (GOTOOLCHAIN).
Snap e apt
Se quiser o pacote da distro, saiba que ele atrasa da upstream. Ubuntu 24.04 empacota por volta da 1.22; o snap da Canonical acompanha melhor:
# snap (clássico, atualiza sozinho)
sudo snap install go --classic
go version
# apt (estável da distro, costuma ser mais velho)
sudo apt update
sudo apt install -y golang-go git
go version
Não misture snap, apt e /usr/local/go no mesmo PATH. Escolha um. PPA longsleep/golang-backports ainda existe para Ubuntu LTS, se o apt da caixa for antigo demais.
Hello, módulo
Desde o 1.16 o módulo é o default. Nada de GOPATH/src/github.com/...:
mkdir -p ~/src/hello && cd ~/src/hello
go mod init hello
printf 'package mainnimport "fmt"nfunc main() { fmt.Println("olá, linuxpro") }n' > hello.go
go run .
Generics existem desde o 1.18 — o texto de 2019 dizia que não havia. O gist do post original (jniltinho/8758e15a9ef80a189fce) fica como relíquia: não rode script de gist como root em 2026.
O que ficou
Um tarball, um PATH, um go mod init. A linguagem que a lista de 2017 ainda chamava de “fraca no Brasil” é a da infra. O mapa: As 7 principais linguagens. O howto de 2017, irmão mais velho deste: Instalando Golang no Linux.
Go instalado, veja a linguagem em ação aqui no blog — dois projetos nossos escritos em Go: go-imapsync (migração de caixas IMAP num binário único) e go-postfixadmin (painel moderno para Postfix).
Docs: go.dev/doc/install · tour: go.dev/tour.