Como Instalar Golang no Linux
Meta
Status: Updated
Link: https://dev.to/alexandreliberato/como-instalar-golang-no-linux-3pl9
Intro
Hoje vamos realizar a instalação de uma das linguagens de programação que mais crescem no mercado de desenvolvimento.
- Remover versões anteriores
- Download
- Instalação
- Configuração
- Teste
! Caso você já tenha o Go instalado com versão 1.21+ pule para a seção # Instalando uma nova versão
Remover versões anteriores
Primeiro vamos verificar se existe alguma versão instalada no seu sistema:
$ go version
- Se a resposta for algo como 'go version go1.15.1 linux/amd64' você terá que remover a instalação.
- Verifique onde está o binário:
# whereis go
- Remover o diretório:
# sudo rm -rf /opt/go
- Senão, se a resposta for 'command … not found' não existe nenhuma versão instalada pule para o próximo passo.
Se você realizou a instalação com seu gerenciador de pacotes desinstale usando o comando abaixo, para derivados de Debian como Ubuntu, ou o equivalente da sua distribuição:
# apt remove golang-go
Senão remova os diretórios e configurações realizadas manualmente.
Download
Acesse o website https://golang.org/dl/ e baixe a versão disponível para Linux.
Instalação
Após baixar o pacote mova o mesmo para o diretório '/opt':
# mv golang1.15.tar.gz /opt
Descompacte o arquivo tarball:
$ cd /opt
# tar zxvf golang1.15.tar.gz
Verifique se o tarball foi descompactado $ ls -la
:
Remova o tarball com # rm golang1.15.tar.gz
Configuração
Agora teremos que avisar nosso sistema operacional que existe um novo software instalado, assim ele poderá disponibilizar o mesmo em qualquer ponto do sistema para usarmos sem ter que acessar o diretório de instalação :)
Abra seu arquivo ~/.profile e adiciona a seguinte linha ao final do arquivo:
export GOROOT="/opt/go"
export GOPATH="/home/<your-user>/go-projects"
export PATH="$GOROOT:$GOPATH:$PATH"
export PATH="$GOROOT/bin:$GOPATH/bin:$PATH"
Agora basta avisar seus sistema operacional que houve mudanças e pedir para recarregar este mesmo arquivo:
$ source ~/.profile
ou $ . ~/.profile
Teste
Para verificar se está tudo correto execute $ go version
que deverá retornara versão da instalação:
Crie um arquivo chamado 'hello.go' com o conteudo abaixo por exemplo:
Execute o código com $ go run 'hello.go'
e devemos ter a seguinte saída:
Sucesso!
Instalando uma nova versão
A partir da versão 1.21 a distribuição Go é composta por um comando 'go' e um pacote de ferramentas/toolchain
Go contendo: biblioteca padrão, compilador, assembler entre outras ferramentas. O comando 'go' pode utilizar tanto sua própria toolchain
como outras versões encontradas no PATH ou até baixá-las conforme necessário.
A escolha de qual toolchain
será usada é baseado no valor do variável de ambiente GOTOOLCHAIN, assim como das linhas contidas no módulo principal do Go, arquivo go.mod ou o arquivo go.work presente no workspace
atual.
! Dicas:
- Quando você muda de módulos e workspaces
a versão da toolchain
usada pode variar
- Na configuração padrão/default
o comando 'go' usa a toolchain
que compõe a distribuição desse comando, isso acontece quando a versão da distribuição é tão recente quanto as versões descritas nas linhas 'go' ou 'toolchain' do módulo ou workspace
atual
- A troca automática de toolchain
pode ser desabilitada
Vamos a prática!
Em um workspace
gostariamos de ter nosso código compatível com a versão 1.23 mas gostaríamos de utilizar uma outra versão de distribuição, e seus binários por consequência, porque por exemplo essa distribuição tem uma melhor performance ou funcionalidade ferramental:
module github.com/feilerdev/tttd
go 1.23.5
toolchain go1.24.1
Esta é apenas uma introdução ao tema, para mais acesse: https://go.dev/doc/toolchain
Por hoje é isso pessoal!
Obrigado pela visita, deixe seu like e siga para novos artigos sobre Desenvolvimento de Sistemas.
@feiler no Twitter
Top comments (3)
Vale a pena adicionar uma menção ao go toolchain, principalmente para as pessoas que já tem o Go 1.21+
Recomendo dar uma olhado no asdf-manager, é um gerenciador de linguagens de programação bem útil, com ele tu pode configurar um projeto pra usar uma versão específica da linguagem e também uma versão global, e deixar o sistema mais organizado na minha opnião :)
Ótima dica Felipe! É uma ferramenta fantástica sim, mas creio ser muito importante também para quem está começando saber como instalar e organizar suas ferramentas :D