O Go pode ser instalado na máquina (independente do SO) de uma forma extremamente simples. Por esse motivo meu artigo será sobre o GVM. Ele é um gerenciador de versões para GO, como o rbenv e rvm (RUBY) virtualenv (PYTHON). Ele permite ter várias versões de go instalado na sua máquina.
A primeira coisa é instalar algumas dependências para que tudo funcione como esperado, apt-get install curl git mercurial make binutils bison gcc. Depois execute bash < <(curl -s -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Agora que instalamos o gvm, vamos atualizar a sessão do terminal executando source ~/.gvm/scripts/gvm.
O comando gvm já está disponível. Vou citar alguns comandos básicos:
- gvm version – ver a versão do gvm;
- gvm list – ver as versões de GO instalado;
- gvm listall – ver as versões disponíveis para instalação;
- gvm install xpto – instalar uma versão(xpto);
- gvm uninstall xpto- remover a versão(xpto);
- gvm use xpto —default – seleciona versão para utilizar , —default define a versão padrão para o SO.
Execute o gvm install release para instalar a versão atual de GO. Precisamos só definir a versão que vamos utilizar usando o comando gvm use release —default.
Com o Go instalado e funcionando, vamos configurar o ambiente. Crie um diretório para o projeto e dentro crie três pastas para a estrutura padrão de GO. Esse comando criará a pasta com os subdiretórios mkdir -p go/{bin,pkg,src}.
Último passo é configurar as variáveis de ambiente.
echo “export GOPATH=$HOME/go” >> ~/.bashrc
echo “export PATH=$PATH:$GOPATH/bin” >> ~/.bashrc
*Deixei a palavra go em negrito para destacar o nome da pasta criada anteriormente.
Mão na massa
Minha intenção nesse artigo é falar apenas da instalação e configuração, mas acho necessário ter um Hello World para que possa rodar um script e ver que tudo está OK.
Dentro da pasta src crie um arquivo com o nome hello.go e cole o seguinte código
package main import "fmt" func main(){ fmt.Println("Hello World") }
Pronto agora é só executar o arquivo go run hello.go.