GOPATH no Ubuntu: como não enlouquecer (e nem o código)
Você certamente já passou por isso: acabou de instalar o Go no Ubuntu, abre o terminal, digita go run main.go e, como resposta, silêncio. Ou, pior ainda, um mar vermelho de erros mencionando GOPATH. Se você pesquisou esse problema, quase com certeza viu aquela famosa pergunta no Stack Overflow com milhares de visualizações: "How do I SET the GOPATH environment variable on Ubuntu? What file must I edit?". Dor familiar? Bem-vindo ao clube.
Eu mesmo já perdi meio dia tentando entender por que o Go não via meus pacotes, mesmo tendo feito "tudo certo". Spoiler: eu fiz errado. Neste artigo, vamos analisar os principais erros ao configurar o GOPATH no Ubuntu, aprender a evitá-los e, finalmente, configurar o ambiente para funcionar como um relógio suíço.
O que é GOPATH e por que ele ainda é importante?
Antes de mergulhar nos detalhes, vamos lembrar o que é GOPATH. No mundo Go (especialmente em versões anteriores à 1.16), isso era a vaca sagrada. GOPATH é o caminho para o diretório de trabalho do Go, onde seus códigos-fonte, binários compilados e pacotes de terceiros são armazenados. Por padrão no Ubuntu, ele é definido como $HOME/go, mas muitos desenvolvedores (especialmente aqueles que trabalham com vários projetos) o alteram.
Com o surgimento dos Go Modules (a partir do Go 1.11), a necessidade de gerenciar manualmente o GOPATH diminuiu, mas não desapareceu completamente. Se você trabalha com projetos antigos, usa go get ou simplesmente quer que go install coloque os binários em um local conveniente, ainda precisará se familiarizar com essa variável.
Top 5 erros ao configurar o GOPATH no Ubuntu
Reuni os erros mais comuns que iniciantes (e não só) cometem. Verifique se você não está caindo em um deles agora.
Erro nº 1: Editar o arquivo errado
A pergunta mais popular no Stack Overflow. Usuários vão para /etc/environment, /etc/profile ou até /etc/bash.bashrc. Sim, funciona, mas é uma má prática. Arquivos de sistema são para configurações do sistema. Seu GOPATH é uma variável pessoal e deve ficar nos arquivos de configuração do usuário.
Como fazer corretamente: edite ~/.bashrc (para Bash) ou ~/.profile (se usar login shell). Se você usa Zsh, é ~/.zshrc.
Erro nº 2: Esquecer o export
Frequentemente vejo em arquivos de configuração: GOPATH=$HOME/go sem o export. Sem o export, a variável não será passada para processos filhos (incluindo sua IDE e go build).
Sintaxe correta:
export GOPATH=$HOME/goexport PATH=$PATH:$GOPATH/binErro nº 3: Não reiniciar o terminal
Você editou o .bashrc, salvou, e depois fica olhando para um echo $GOPATH vazio. Mágica não acontece até que você aplique as alterações. O comando source ~/.bashrc é seu melhor amigo.
Erro nº 4: Conflito com Go Modules
Se você usa go mod init para cada projeto, o GOPATH pode atrapalhar. Especialmente se você tenta trabalhar dentro de $GOPATH/src. O Go moderno não exige isso, mas se você insiste em colocar o projeto em ~/go/src/myproject, prepare-se para erros inesperados.
Erro nº 5: Espaços e caracteres especiais no caminho
O Ubuntu permite criar pastas com espaços. Não faça isso para o Go. /home/usuario/Meus Projetos/go é uma dor de cabeça. Use /home/usuario/projetos/go ou simplesmente $HOME/go.
Guia passo a passo: como configurar o GOPATH corretamente
Vamos fazer isso de uma vez por todas. Abra o terminal e execute os comandos em sequência.
Passo 1. Verifique a versão atual do Go
go versionBlogs
Book Recommendations
Leia também