Skip to content

Instantly share code, notes, and snippets.

@scovl
Created June 12, 2023 20:40
Show Gist options
  • Save scovl/33901f830b833d12895d128a960e7215 to your computer and use it in GitHub Desktop.
Save scovl/33901f830b833d12895d128a960e7215 to your computer and use it in GitHub Desktop.
Go install
#!/bin/bash
# Solicita autorização de sudo
sudo -v
# Identifica a distribuição
OS=$(grep -E '^ID=' /etc/os-release | cut -d'=' -f2 | sed 's/"//g')
# Atualiza o sistema e instala o curl de acordo com a distribuição
case $OS in
debian|ubuntu)
sudo apt update -y
sudo apt install curl -y
;;
fedora)
sudo dnf update -y
sudo dnf install curl -y
;;
arch)
sudo pacman -Syu
sudo pacman -S curl
;;
*)
echo "Distribuição não suportada"
exit 1
;;
esac
# Obtém a versão mais recente do Go usando o API do Github
GO_LATEST=$(curl -s https://api.github.com/repos/golang/go/git/refs/tags | grep -o -m 1 -E 'go[0-9\.]+' | sort --version-sort | tail -1)
# Baixa a versão mais recente do Go
curl -O https://dl.google.com/go/${GO_LATEST}.linux-amd64.tar.gz
# Desempacota o arquivo e move para /usr/local
sudo tar -C /usr/local -xzf ${GO_LATEST}.linux-amd64.tar.gz
# Adiciona /usr/local/go/bin à variável PATH
echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
# Cria a workspace do Go
mkdir -p ~/go/{bin,src,pkg}
echo "export GOPATH=~/go" >> ~/.bashrc
echo "export PATH=\$PATH:\$GOPATH/bin" >> ~/.bashrc
# Aplica as mudanças no arquivo .bashrc
source ~/.bashrc
# Remove o arquivo baixado
rm ${GO_LATEST}.linux-amd64.tar.gz
# Confirma a instalação
go version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment