Janeiro 2026 · ~12 min

Como Instalar Go (Golang) no Windows, macOS e Linux

Como instalar Go (Golang) no Windows, macOS e Linux: baixe em go.dev/dl, confirme com go version, crie o módulo e rode seu primeiro programa.

Resposta rápida: para instalar Go (Golang), baixe o toolchain em go.dev/dl, rode go version e só então crie o projeto com go mod init exemplo/ola e um main.go. Em seguida execute go run .. Você não precisa configurar GOPATH, instalar framework nem montar uma árvore de pastas complexa para escrever o primeiro programa.

Este é o primeiro artigo da série Golang para Iniciantes. O objetivo é sair de uma máquina sem Go para um projeto que compila, executa e possui um módulo válido. Ao final, você também entenderá o que fazem go run, go build, go fmt, go test e go mod tidy.

O nome oficial da linguagem é Go. “Golang” é apenas um apelido muito usado em pesquisas e vagas. Se você quer primeiro conhecer a história e os usos da linguagem, leia o que é Go (Golang).

O que você precisa para começar

O ambiente básico é pequeno:

FerramentaPara que serveObrigatória agora?
Toolchain GoCompilar, executar, formatar e testar códigoSim
Editor de texto ou IDEEscrever arquivos .goSim
TerminalRodar comandos como go runSim
GitVersionar e compartilhar projetosRecomendado
DockerEmpacotar aplicaçõesNão
Framework webCriar APIs com conveniências extrasNão

A biblioteca padrão já inclui ferramentas para terminal, arquivos, JSON, HTTP, testes e concorrência. Para este tutorial, basta o toolchain oficial e um editor.

Como instalar Go no Windows, macOS e Linux

A fonte oficial para downloads é go.dev/dl. A versão usada pelo site em outubro de 2026 é Go 1.27.1, mas você deve instalar a versão estável que aparecer como recomendada na página quando estiver seguindo o tutorial.

Evite copiar de um post antigo um endereço de arquivo com versão fixa. O número, a arquitetura e até o pacote adequado podem mudar. Baixe o instalador correspondente ao seu sistema e confirme a versão depois.

Instalar Go no Windows

O caminho mais previsível para instalar Go no Windows é o instalador MSI oficial:

  1. abra go.dev/dl;
  2. baixe o arquivo .msi para Windows — em PCs com Windows em ARM, escolha a build ARM64;
  3. execute o instalador e mantenha as opções padrão;
  4. feche e abra o PowerShell novamente;
  5. rode go version.

O MSI instala em C:\Program Files\Go e adiciona o diretório bin ao PATH do sistema sozinho. Você não precisa editar variáveis de ambiente manualmente. Ainda assim, feche e reabra o terminal: janelas abertas antes da instalação continuam com o PATH antigo e não encontram o comando.

Confirme no PowerShell:

go version
# go version go1.27.1 windows/amd64

Se go não for reconhecido, verifique o caminho antes de mexer em qualquer variável:

Get-Command go
$env:Path -split ';' | Select-String go

Instalar Go no Windows pelo terminal

Além do MSI, os gerenciadores de pacote instalam e atualizam o Go no Windows:

# WinGet (presente no Windows 10 e 11 atuais)
winget install GoLang.Go

# Chocolatey, se você já usa o gerenciador
choco install golang

# Scoop, instalação por usuário sem permissão de administrador
scoop install go

Escolha um só método e mantenha-o. Misturar uma instalação do MSI com a de um gerenciador de pacote pode deixar duas versões de Go no PATH, e aí go version pode reportar uma versão diferente da esperada.

Atualizar ou remover o Go no Windows

Para atualizar, baixe o novo .msi em go.dev/dl e execute-o: ele substitui a instalação anterior. Com WinGet, winget upgrade GoLang.Go faz o mesmo trabalho. Para remover, use Configurações → Aplicativos (ou “Adicionar ou remover programas”) e desinstale Go Programming Language.

E com WSL?

Se você usa WSL (Subsistema do Windows para Linux), instale o Go dentro da distribuição Linux, não apenas no Windows: o toolchain do Linux é separado do go.exe. Dentro do WSL, rode sudo apt install golang-go (Ubuntu/Debian) ou siga a instalação manual de go.dev/doc/install. Você pode manter o editor no Windows enquanto o código e o terminal rodam no WSL.

Instalar Go no macOS

Com Homebrew:

brew install go
go version

Sem Homebrew, use o pacote para macOS disponível em go.dev/dl. Em Macs com Apple Silicon, escolha a arquitetura ARM64; em máquinas Intel, escolha AMD64. A página oficial apresenta a opção correspondente.

Instalar Go no Linux

Sua distribuição pode oferecer um pacote pronto:

# Ubuntu ou Debian
sudo apt update
sudo apt install golang-go

# Fedora
sudo dnf install golang

# Arch Linux
sudo pacman -S go

Instalação manual no Linux: a versão oficial em /usr/local

O pacote da distribuição pode ficar atrás da versão estável oficial. Isso não impede os primeiros exercícios, mas pode fazer diferença ao usar recursos recentes. Para instalar em qualquer distribuição a versão publicada pelo projeto Go, o procedimento oficial (go.dev/doc/install) tem quatro passos.

1. Remova uma instalação manual anterior. Extrair uma versão nova por cima de uma antiga pode deixar a instalação inconsistente:

sudo rm -rf /usr/local/go

2. Baixe e extraia o arquivo oficial. Em go.dev/dl, escolha o .tar.gz com a arquitetura certa: linux-amd64 na maioria dos PCs e servidores, linux-arm64 em máquinas ARM como Raspberry Pi. Extraia em /usr/local a partir da pasta onde o arquivo foi salvo (aqui, ~/Downloads como exemplo):

cd ~/Downloads
sudo tar -C /usr/local -xzf go1.XX.linux-amd64.tar.gz

Troque go1.XX.linux-amd64.tar.gz pelo nome real do arquivo baixado — este tutorial evita fixar versão para que você não copie um endereço de release antigo. O Go fica em /usr/local/go; /usr/go, usado por tutoriais antigos, é uma convenção descontinuada.

3. Adicione o Go ao PATH. Coloque esta linha no ~/.profile (ou no ~/.bashrc, se preferir):

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

Releia o arquivo e confirme a instalação:

source ~/.profile
go version

4. Para atualizar, repita o processo. Remova /usr/local/go, baixe o novo .tar.gz e extraia de novo — o procedimento substitui a instalação anterior. Não misture a instalação manual com o pacote da distribuição (apt, dnf, pacman): duas versões no PATH fazem go version reportar algo diferente do esperado, o mesmo problema de misturar MSI e gerenciador de pacote no Windows.

Como verificar se Go foi instalado corretamente

Abra um terminal novo e execute:

go version

A resposta terá este formato:

go version go1.27.1 linux/amd64

Os detalhes variam:

  • go1.27.1 é a versão instalada;
  • linux, darwin ou windows identifica o sistema;
  • amd64 ou arm64 identifica a arquitetura.

Veja também as configurações principais do toolchain:

go env GOROOT
go env GOPATH
go env GOMODCACHE

GOROOT aponta para a instalação da linguagem. GOPATH é uma área usada pelo toolchain para cache e binários instalados. Seu projeto não precisa ficar dentro do GOPATH. Com módulos, você pode criar código em qualquer pasta normal de trabalho.

Seu primeiro projeto Go, passo a passo

Crie uma pasta e entre nela:

mkdir ola-go
cd ola-go

Inicialize um módulo:

go mod init exemplo/ola-go

O comando cria go.mod:

module exemplo/ola-go

go 1.27

O caminho exemplo/ola-go funciona para aprendizado local. Em um projeto publicado, normalmente seria o endereço do repositório, como github.com/usuario/ola-go.

Agora crie main.go:

package main

import "fmt"

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

Execute o projeto inteiro:

go run .

Saída:

Olá, Go!

Prefira go run . a go run main.go. O ponto significa “execute o pacote desta pasta” e continua funcionando quando o programa passa a ter vários arquivos .go no mesmo pacote.

Entendendo o primeiro programa

package main

Todo arquivo Go pertence a um pacote. Um pacote chamado main, contendo uma função main, representa um programa executável.

package main

Bibliotecas normalmente usam outro nome de pacote e não possuem o ponto de entrada main.

import "fmt"

O pacote fmt pertence à biblioteca padrão e oferece funções de formatação e impressão:

import "fmt"

Go rejeita imports não utilizados. Isso evita acumular dependências sem função no arquivo.

func main()

func declara uma função. Quando você executa o programa, o runtime chama main:

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

fmt.Println imprime os valores e adiciona uma quebra de linha. O nome começa com maiúscula porque é exportado pelo pacote fmt.

go run, go build e o binário

Durante o aprendizado, go run . é conveniente porque compila e executa em um comando. Para gerar um arquivo executável, use:

go build

No Linux ou macOS, execute o binário com:

./ola-go

No Windows PowerShell:

.\ola-go.exe

A diferença prática é:

ComandoResultado
go run .Compila temporariamente e executa
go buildGera um binário para executar depois
go installCompila e instala um comando em um diretório de binários

Um binário Go costuma ser distribuído sem exigir que a pessoa usuária instale o toolchain. Dependências e detalhes de compilação podem mudar esse comportamento, mas o modelo de entrega simples é uma das razões para a adoção de Go em CLIs, APIs e infraestrutura.

Formatação: deixe o gofmt decidir

Go possui um formato padrão. Em vez de discutir espaços, tabs ou posição de chaves, rode:

go fmt ./...

No projeto atual, ./... significa todos os pacotes abaixo da pasta. Editores com suporte a Go normalmente formatam ao salvar.

Experimente bagunçar os espaços:

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

Depois execute go fmt ./.... O arquivo volta ao formato convencional. Essa uniformidade facilita leitura, revisão de código e colaboração.

Adicione uma função e um teste

Vamos transformar a mensagem em uma função para testar o primeiro comportamento.

Atualize main.go:

package main

import "fmt"

func saudacao(nome string) string {
	return fmt.Sprintf("Olá, %s!", nome)
}

func main() {
	fmt.Println(saudacao("Gopher"))
}

Crie main_test.go na mesma pasta:

package main

import "testing"

func TestSaudacao(t *testing.T) {
	recebido := saudacao("Ana")
	esperado := "Olá, Ana!"

	if recebido != esperado {
		t.Fatalf("recebido %q; esperado %q", recebido, esperado)
	}
}

Rode:

go test ./...

Saída esperada:

ok  	exemplo/ola-go

O arquivo termina em _test.go, e a função de teste começa com Test. O pacote testing já faz parte da biblioteca padrão. Quando quiser aprofundar, leia o guia de testes em Go.

Comandos Go que você usará no início

ComandoUso
go versionMostrar a versão instalada
go envMostrar configurações do toolchain
go mod init caminhoCriar um módulo
go run .Compilar e executar o pacote atual
go build ./...Compilar os pacotes do projeto
go test ./...Executar os testes
go fmt ./...Formatar o código
go vet ./...Procurar construções suspeitas
go mod tidySincronizar dependências do módulo
go doc fmt.PrintlnConsultar documentação no terminal

Não rode go get -u ./... sem entender o impacto. Atualizações em massa podem mudar várias dependências ao mesmo tempo. Para começar, deixe go mod tidy organizar imports realmente usados e versionamento indireto.

O guia de documentação Go em português explica como combinar go doc, go help, pkg.go.dev e a referência oficial.

Qual editor usar para programar em Go

VS Code

Instale a extensão Go, publicada pelo Go Team at Google. Ao abrir um arquivo .go, aceite a instalação das ferramentas sugeridas, especialmente gopls. O servidor de linguagem oferece autocomplete, navegação, diagnósticos, renomeação e documentação no editor.

Você não precisa instalar manualmente uma lista antiga de ferramentas. A extensão gerencia o conjunto compatível e informa quando uma atualização é necessária.

GoLand

O GoLand é uma IDE dedicada ao ecossistema Go. Ele inclui depurador, testes, refatorações, navegação e integração com módulos. É uma opção paga, embora a disponibilidade de modalidades gratuitas ou educacionais deva ser conferida no site da JetBrains.

Vim, Neovim e outros editores

Qualquer editor com integração ao gopls pode oferecer uma boa experiência. O essencial não é a marca do editor, mas conseguir:

  • formatar ao salvar;
  • enxergar erros do compilador;
  • navegar para definições;
  • executar testes;
  • usar o depurador quando necessário.

Se você quer comparar as duas opções gráficas mais populares para Go, veja GoLand vs VS Code.

Estrutura de pastas: comece simples

Para o primeiro projeto, isto basta:

ola-go/
├── go.mod
├── main.go
└── main_test.go

Não copie uma árvore com cmd, internal, pkg, api, services, repositories e adapters antes de ter código suficiente para justificar as divisões. Go não exige um layout universal.

Quando o projeto crescer, duas pastas têm significado ou uso frequente:

  • cmd/: costuma reunir diferentes programas executáveis;
  • internal/: possui uma regra aplicada pelo toolchain que restringe imports externos.

A pasta pkg/ é apenas uma convenção, não uma exigência da linguagem. Muitos projetos nunca precisam dela. Para projetos maiores, leia Clean Architecture em Go sem exagero depois de construir algo simples.

Erros comuns na instalação e no primeiro projeto

go: command not found ou “go não é reconhecido”

Feche e abra o terminal. Depois confirme se o diretório de instalação está no PATH.

No Linux ou macOS:

command -v go
echo "$PATH"

No PowerShell:

Get-Command go
$env:Path

Se você instalou manualmente no Linux, confira se /usr/local/go/bin foi adicionado ao arquivo de configuração do shell correto, como ~/.bashrc ou ~/.zshrc.

go: cannot find main module

Entre na pasta do projeto e inicialize o módulo:

go mod init exemplo/ola-go

Não desative módulos com GO111MODULE=off. Esse conselho pertence a fluxos antigos e cria mais problemas em projetos atuais.

package ... is not in std

Confira o import e o diretório em que o comando está sendo executado. Para dependências externas, use o caminho de módulo indicado em pkg.go.dev ou na documentação do projeto e rode go mod tidy depois de importar o pacote no código.

Import declarado e não utilizado

Go não permite imports sem uso. Remova o import ou use o pacote. O erro é intencional e mantém o código limpo.

O código não está formatado

Rode:

go fmt ./...

Se o editor continua criando formatação diferente, habilite gofmt ou a integração oficial de Go ao salvar.

Exercícios para fixar os primeiros passos

Faça estes exercícios na mesma pasta ou crie um módulo para cada um:

  1. Saudação por argumento: leia os.Args e cumprimente o nome recebido no terminal.
  2. Conversor de temperatura: converta Celsius para Fahrenheit em uma função testável.
  3. Contador de caracteres: receba uma string e conte runes em vez de bytes.
  4. Calculadora simples: aceite dois números e uma operação.
  5. Servidor HTTP local: responda “Olá, Go!” em http://localhost:8080 usando net/http.

Para o quinto exercício, continue no tutorial de API REST com Go. Ele começa pela biblioteca padrão e evolui para rotas, JSON, testes, timeouts e deploy.

Próximo passo na trilha

Agora você já consegue instalar Go, criar um módulo, executar código, gerar um binário e rodar um teste. A sequência recomendada é:

  1. Sintaxe Go: variáveis, tipos, funções e structs — próximo artigo desta série;
  2. Go para iniciantes — guia prático condensado;
  3. Cheatsheet de sintaxe Go — consulta rápida enquanto pratica;
  4. Como aprender Go — plano de estudo com projetos;
  5. Curso gratuito de Golang — trilha organizada do básico ao backend;
  6. Comunidade Go Brasil — grupos, meetup e canais para tirar dúvidas.

Não tente memorizar toda a linguagem antes de criar projetos. Use ciclos curtos: escreva, rode go fmt, execute go test, consulte go doc e melhore uma pequena parte por vez.


Última atualização: outubro de 2026 — instalação manual no Linux (/usr/local) documentada passo a passo, seção de instalação no Windows ampliada (PATH, winget/Chocolatey/Scoop, atualização, WSL), alinhada ao Go 1.27.1, sem URLs de release fixas, módulos atuais, gopls, primeiro teste e troubleshooting revisado.

Perguntas frequentes

Como instalar Go (Golang) no Windows, macOS ou Linux?

Baixe o instalador oficial em go.dev/dl, execute-o e abra um terminal novo. Confirme com go version. No macOS, brew install go também funciona; no Linux, use o pacote da distribuição ou a instalação manual em /usr/local descrita em go.dev/doc/install.

Como começar a programar em Go do zero?

Instale o toolchain pelo site oficial go.dev/dl, confirme com go version, crie uma pasta, execute go mod init e salve um main.go com package main e func main. Use go run . para executar e go build para gerar um binário.

Go e Golang são a mesma linguagem?

Sim. Go é o nome oficial da linguagem. Golang é um apelido popularizado pelo antigo domínio golang.org e ainda aparece muito em buscas, comunidades, cursos e vagas.

Preciso configurar GOPATH para aprender Go?

Não. Projetos modernos usam módulos e podem ficar em qualquer pasta. O GOPATH continua sendo usado internamente pelo toolchain para cache e binários instalados, mas você não precisa colocar seu código-fonte dentro dele.

Qual editor usar para programar em Go?

VS Code com a extensão oficial Go e GoLand são opções populares. Vim, Neovim e outros editores também funcionam bem quando integrados ao gopls, o servidor de linguagem oficial do ecossistema Go.

Qual é a diferença entre go run e go build?

go run compila temporariamente e executa o programa, sendo conveniente durante o aprendizado. go build compila o projeto e grava um binário que pode ser executado depois sem repetir a compilação.