Skip to content

Instantly share code, notes, and snippets.

@jniltinho
Last active February 3, 2024 15:42
Show Gist options
  • Star 45 You must be signed in to star a gist
  • Fork 27 You must be signed in to fork a gist
  • Save jniltinho/8758e15a9ef80a189fce to your computer and use it in GitHub Desktop.
Save jniltinho/8758e15a9ef80a189fce to your computer and use it in GitHub Desktop.
Install Golang on Linux
#!/bin/bash
## Install Golang Stable 64Bits on Linux (Debian|Ubuntu|OpenSUSE|CentOS)
## http://www.linuxpro.com.br/2015/06/golang-aula-1-instalacao-da-linguagem-no-linux.html
## Run as root (sudo su)
## Thank's @geosoft1 | @gwmoura
GO_URL="https://go.dev/dl"
GO_VERSION=$(curl -s 'https://go.dev/VERSION?m=text'|head -n1)
GO_FILE="$GO_VERSION.linux-amd64.tar.gz"
# Check if user has root privileges
if [[ $EUID -ne 0 ]]; then
echo "You must run the script as root or using sudo"
exit 1
fi
GET_OS=$(cat /etc/os-release | head -n1 | cut -d'=' -f2 | awk '{ print tolower($1) }'| tr -d '"')
if [[ $GET_OS == 'debian' || $GET_OS == 'ubuntu' ]]; then
apt-get update && apt-get install -y git-core
fi
if [[ $GET_OS == 'opensuse' ]]; then
zypper in -y git-core
fi
if [[ $GET_OS == 'centos' || $GET_OS == 'amazon' ]]; then
yum -y install git-core
fi
cd /tmp
curl -LO --progress-bar ${GO_URL}/${GO_FILE}
tar -zxf ${GO_FILE} -C /usr/local
rm -f ${GO_FILE}
echo 'export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/GO
export PATH=$PATH:$GOPATH/bin' >> /etc/profile
### You do not need to run commands with root or sudo
source /etc/profile
## mkdir -p $HOME/GO
## Test if Golang is working
go version
### The output is this:
## go version go1.7 linux/amd64
@jniltinho
Copy link
Author

@random-robbie

Thanks !!!

@posilva
Copy link

posilva commented Dec 18, 2017

Replacing if [[ $GET_OS == 'centos' ]]; then by if [[ $GET_OS == 'centos' || $GET_OS == 'amazon' ]]; then would be great to use in AWS EC2.

Add some echo like Run command as non-root to init GOPATH: 'mkdir -p $HOME/GO/src' in the end would give additional instruction for the final tweaks.

Great script thank you

Pedro

@udhos
Copy link

udhos commented Jun 14, 2020

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment