Ambiente de Desenvolvimento em Go: instalação, GOPATH, GOROOT e editor

Capítulo 1

Tempo estimado de leitura: 8 minutos

+ Exercício

O que você precisa para começar

Para desenvolver em Go, você precisa de: (1) o compilador e ferramentas (comando go), (2) variáveis de ambiente corretas (principalmente PATH), (3) um diretório de trabalho (workspace) e (4) um editor + terminal para executar comandos. A instalação moderna do Go usa módulos por padrão, então você não precisa “prender” seus projetos dentro do GOPATH, mas ainda é importante entender o que ele é e para que serve.

Instalação do Go (Windows, macOS e Linux)

Windows

  • Baixe o instalador oficial (.msi) para Windows (amd64/arm64 conforme seu PC).
  • Execute o instalador e mantenha o caminho padrão (ex.: C:\Program Files\Go).
  • O instalador normalmente configura o PATH automaticamente. Ainda assim, valide no terminal.

Abra o PowerShell e verifique:

go version
where go
$env:Path -split ';' | Select-String -Pattern 'Go'

macOS

  • Baixe o pacote oficial (.pkg) e instale (geralmente em /usr/local/go ou /opt/homebrew dependendo do método).
  • Depois, garanta que o binário do Go esteja no PATH.

Verifique no Terminal:

go version
which go
echo $PATH

Se precisar ajustar o PATH, edite seu arquivo de shell (ex.: ~/.zshrc ou ~/.bashrc):

export PATH="$PATH:/usr/local/go/bin"

Recarregue:

Continue em nosso aplicativo e ...
  • Ouça o áudio com a tela desligada
  • Ganhe Certificado após a conclusão
  • + de 5000 cursos para você explorar!
ou continue lendo abaixo...
Download App

Baixar o aplicativo

source ~/.zshrc

Linux

Há duas abordagens comuns: pacote da distro (pode estar desatualizado) ou tarball oficial (recomendado para ter versões recentes).

Instalação via tarball oficial:

  • Baixe o arquivo goX.Y.Z.linux-amd64.tar.gz (ou arm64) e extraia em /usr/local.
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf goX.Y.Z.linux-amd64.tar.gz

Adicione ao PATH (em ~/.profile, ~/.bashrc ou ~/.zshrc):

export PATH="$PATH:/usr/local/go/bin"

Recarregue e valide:

source ~/.profile
go version
which go

Validando a instalação: go version e go env

Após instalar, valide com:

go version

Para inspecionar o ambiente e caminhos usados pelo Go:

go env

Algumas variáveis importantes para conferir:

  • GOROOT: onde o Go está instalado.
  • GOPATH: workspace padrão (não obrigatório para módulos, mas ainda usado para cache e binários).
  • GOMOD: caminho do go.mod do projeto atual (ou /dev/null se não estiver em um módulo).
  • GOCACHE: cache de build.
  • GOMODCACHE: cache de módulos baixados.
  • GOBIN: diretório onde binários instalados via go install podem ser colocados (se vazio, usa $GOPATH/bin).

Entendendo GOROOT, GOPATH e diretórios de cache

GOROOT (instalação do Go)

GOROOT aponta para a pasta onde o Go foi instalado e onde ficam o compilador, a biblioteca padrão e ferramentas. Em instalações comuns, você não precisa definir GOROOT manualmente; o comando go geralmente detecta automaticamente.

Como ver:

go env GOROOT

GOPATH (workspace “clássico” e utilidades atuais)

GOPATH é um diretório de trabalho historicamente usado antes dos módulos. Hoje, com módulos, seus projetos podem ficar em qualquer lugar (ex.: ~/dev/meu-projeto), mas o GOPATH ainda é usado como local padrão para:

  • $GOPATH/bin: binários instalados com go install (quando GOBIN não está definido).
  • $GOPATH/pkg/mod: cache de módulos (GOMODCACHE normalmente aponta para cá).

Como ver:

go env GOPATH

Estrutura típica (não obrigatória para seus projetos com módulos):

$GOPATH/
  bin/
  pkg/
    mod/
  src/   (legado; não é necessário para módulos)

Cache (GOCACHE e GOMODCACHE)

O Go usa cache para acelerar builds e downloads:

  • GOCACHE: cache de compilação (artefatos intermediários). Pode ser apagado se necessário.
  • GOMODCACHE: onde os módulos baixados ficam armazenados (normalmente dentro de $GOPATH/pkg/mod).

Ver caminhos:

go env GOCACHE
go env GOMODCACHE

Limpeza útil em casos de corrupção ou inconsistência:

go clean -cache
go clean -modcache

Configurando o PATH (e GOBIN) corretamente

Para usar o comando go em qualquer terminal, o diretório .../go/bin precisa estar no PATH. Além disso, para executar ferramentas instaladas via go install, inclua também o diretório de binários do seu usuário ($GOPATH/bin ou $GOBIN).

macOS/Linux: exemplo recomendado

No seu arquivo de shell (ex.: ~/.zshrc):

export PATH="$PATH:/usr/local/go/bin"
export PATH="$PATH:$(go env GOPATH)/bin"

Recarregue:

source ~/.zshrc

Windows: PATH e GOPATH/bin

No Windows, você pode configurar via “Variáveis de Ambiente” do sistema. Garanta que:

  • C:\Program Files\Go\bin (ou o caminho de instalação) esteja no Path.
  • %USERPROFILE%\go\bin (padrão do GOPATH) esteja no Path para executar ferramentas instaladas.

Valide no PowerShell:

go env GOPATH
Test-Path (Join-Path (go env GOPATH) 'bin')

Criando um workspace prático (com módulos)

Uma organização simples e prática é manter seus projetos em uma pasta como ~/dev (macOS/Linux) ou C:\dev (Windows). O importante é: cada projeto Go deve ter seu próprio go.mod.

Exemplo de criação de projeto

Crie uma pasta e inicialize o módulo:

mkdir -p ~/dev/hello-go
cd ~/dev/hello-go
go mod init example.com/hello-go

Crie um arquivo main.go:

package main

import "fmt"

func main() {
	fmt.Println("Olá, Go!")
}

Execute:

go run .

Gere um binário:

go build -o hello
./hello

No Windows (PowerShell):

go build -o hello.exe
./hello.exe

Fluxo mínimo de desenvolvimento: editor + terminal

1) Editar o código

Use um editor com suporte a Go (realce de sintaxe, gofmt ao salvar, e integração com ferramentas). O ponto-chave é: você edita arquivos .go e roda comandos no terminal dentro da pasta do projeto (onde está o go.mod).

2) Formatar com gofmt (padrão da linguagem)

O Go tem um formatador oficial. Formate arquivos específicos:

gofmt -w main.go

Ou formate o projeto inteiro (recomendado):

gofmt -w .

Dica: configure o editor para rodar gofmt ao salvar. Isso evita discussões de estilo e mantém o código consistente.

3) Organizar imports automaticamente

gofmt organiza imports em muitos casos, mas a ferramenta mais comum para ajustar imports (remover não usados, ordenar e agrupar) é goimports. Instale:

go install golang.org/x/tools/cmd/goimports@latest

Garanta que $(go env GOPATH)/bin esteja no PATH e rode:

goimports -w .

4) Checar o projeto

Comandos úteis no dia a dia:

  • go test ./... para rodar testes do módulo inteiro.
  • go vet ./... para análises estáticas comuns.
  • go fmt ./... (atalho que usa gofmt em arquivos do pacote; muitos preferem gofmt -w . para formatar tudo).
go test ./...
go vet ./...

5) Estrutura mínima de pastas

Para um projeto pequeno:

hello-go/
  go.mod
  main.go

Para crescer com organização simples:

meu-app/
  go.mod
  cmd/
    meu-app/
      main.go
  internal/
    ...

cmd costuma conter pontos de entrada (executáveis). internal ajuda a manter código não importável por outros módulos (encapsulamento). Use essa estrutura quando fizer sentido; não é obrigatório para projetos pequenos.

Checklist de verificação (instalação e ambiente)

ItemComo verificarResultado esperado
Go instaladogo versionMostra versão e plataforma
Binário correto no PATHmacOS/Linux: which go | Windows: where goAponta para a instalação desejada
GOROOT coerentego env GOROOTPasta de instalação do Go
GOPATH definidogo env GOPATHDiretório do usuário (ex.: ~/go ou %USERPROFILE%\go)
Binários de ferramentas no PATHgo env GOPATH + checar bin.../go/bin e .../GOPATH/bin no PATH
Módulo inicializadols / dir e go env GOMODgo.mod existe e GOMOD aponta para ele
Build e rungo run . e go buildExecuta e gera binário sem erros

Solução de problemas comuns

1) “go: command not found” (macOS/Linux) ou “go não é reconhecido” (Windows)

  • O PATH não inclui o diretório bin da instalação do Go.
  • Confirme onde o Go foi instalado e adicione ao PATH.

Diagnóstico:

echo $PATH
which go

No Windows:

$env:Path
where go

2) Ferramentas instaladas com go install não rodam (ex.: goimports)

Causa típica: $GOPATH/bin (ou %USERPROFILE%\go\bin) não está no PATH.

Diagnóstico:

go env GOPATH
ls $(go env GOPATH)/bin

Se o binário existe, inclua esse diretório no PATH.

3) Permissões no Linux/macOS ao instalar/atualizar

Se você instalou em /usr/local/go, operações de extração/remoção exigem sudo. Evite misturar métodos (ex.: instalar via gerenciador de pacotes e também via tarball) para não criar conflitos.

4) Múltiplas versões do Go no sistema

Sintoma: go version mostra uma versão diferente da esperada, ou which go/where go aponta para um caminho inesperado.

Passos:

  • Descubra qual binário está sendo usado: which go (macOS/Linux) ou where go (Windows).
  • Remova/ajuste entradas duplicadas no PATH e deixe primeiro o caminho da versão desejada.
  • Reabra o terminal para garantir que o ambiente foi recarregado.

5) “GOMOD=/dev/null” e comandos não reconhecem o módulo

Isso acontece quando você não está dentro de uma pasta com go.mod (ou está em uma subpasta fora do módulo).

Verifique:

go env GOMOD
pwd
ls

Se necessário, volte para a raiz do projeto (onde está o go.mod) ou inicialize um módulo:

go mod init example.com/meu-modulo

6) Cache ou dependências inconsistentes

Se houver erros estranhos após mudanças de versão ou dependências:

go clean -cache
go clean -modcache
go mod tidy

go mod tidy ajusta dependências do go.mod e go.sum para refletir o que o código realmente usa.

Agora responda o exercício sobre o conteúdo:

Ao instalar uma ferramenta com go install (por exemplo, para organizar imports), qual configuração costuma ser necessária para conseguir executá-la diretamente no terminal?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Ferramentas instaladas com go install são colocadas em GOBIN (ou, se vazio, em $(go env GOPATH)/bin). Para executá-las pelo nome no terminal, esse diretório precisa estar no PATH.

Próximo capitúlo

Go Toolchain na prática: go run, go build, go test, go fmt e go vet

Arrow Right Icon
Capa do Ebook gratuito Go (Golang) para Iniciantes: Fundamentos, Concorrência e Estrutura de Projetos
6%

Go (Golang) para Iniciantes: Fundamentos, Concorrência e Estrutura de Projetos

Novo curso

18 páginas

Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.