Skip to content

Instantly share code, notes, and snippets.

Last active November 16, 2023 13:33
  • Star 44 You must be signed in to star a gist
  • Fork 27 You must be signed in to fork a gist
Star You must be signed in to star a gist
What would you like to do?
Install Golang on Linux
## Install Golang Stable 64Bits on Linux (Debian|Ubuntu|OpenSUSE|CentOS)
## Run as root (sudo su)
## Thank's @geosoft1 | @gwmoura
GO_VERSION=$(curl -s ''|head -n1)
# Check if user has root privileges
if [[ $EUID -ne 0 ]]; then
echo "You must run the script as root or using sudo"
exit 1
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
if [[ $GET_OS == 'opensuse' ]]; then
zypper in -y git-core
if [[ $GET_OS == 'centos' || $GET_OS == 'amazon' ]]; then
yum -y install git-core
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 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
Copy link

basicaly you do not need root rights to use go. you can extract in your /home/user directory an use it.
see this project how make the things:

Copy link

@geosoft1 Script Update

Copy link

geosoft1 commented Dec 8, 2015

remember to use wget --no-check-certificate otherwise it will not download on some distributions.

Copy link

@geosoft1 Thank's
Add my script

Copy link

ronoaldo commented Jun 1, 2016

Isn't --no-check-certificate a bad thing to do in a shared script? You are instructing your users to avoid validating the download source, so you are building a script that has a vulnerability for man-in-the-middle-attacks. One could tamper the Go compiled and users using your script can use a tampered go version to redistribute malicious code on ther programs. Just some toughts...

Copy link

gwmoura commented Jun 1, 2016

@jniltinho, one suggestion:


With this change you can install a default value for Go ou another version

Copy link




Copy link

apt-get install wget git-core

needs to be

apt-get install -y wget git-core

no need for manual approval then

Copy link


Thanks !!!

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


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