Skip to content

Instantly share code, notes, and snippets.

@pcgeek86
Forked from random-robbie/install_go_pi.sh
Last active September 12, 2023 15:13
  • Star 33 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
Star You must be signed in to star a gist
Embed
What would you like to do?
Install Go Lang on Raspberry Pi
cd $HOME
FileName='go1.13.4.linux-armv6l.tar.gz'
wget https://dl.google.com/go/$FileName
sudo tar -C /usr/local -xvf $FileName
cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF
source ~/.bashrc
@glowinthedark
Copy link

glowinthedark commented Feb 23, 2022

Modifications:

  • delete /usr/local/go if it exists
  • does NOT add the GOPATH if it's already there
  • optionally delete the downloaded archive (ctr+c to skip)
  • chained with && so that the script exits early on failure

forked gist (v1.20.5):

go 1.17.7

cd /tmp
fileName='go1.17.7.linux-armv6l.tar.gz'
wget -c https://golang.org/dl/$fileName && sudo rm -rfv /usr/local/go && sudo tar -C /usr/local -xvf $fileName

grep -q 'GOPATH=' ~/.bashrc || cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF

source ~/.bashrc

read -p "Press any key to delete downloaded file: $fileName..."
rm -rf "$fileName"

go 1.20.5

cd /tmp
fileName='go1.20.5.linux-armv6l.tar.gz'
wget -c https://go.dev/dl/$fileName && sudo rm -rfv /usr/local/go && sudo tar -C /usr/local -xvf $fileName

grep -q 'GOPATH=' ~/.bashrc || cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF

source ~/.bashrc

read -p "Press any key to delete downloaded file: $fileName..."
rm -rf "$fileName"

@sighmon
Copy link

sighmon commented Mar 21, 2022

Version 1.18 for Raspberry Pi 4

cd /tmp
fileName='go1.18.linux-arm64.tar.gz'
wget -c https://golang.org/dl/$fileName && sudo rm -rfv /usr/local/go && sudo tar -C /usr/local -xvf $fileName

grep -q 'GOPATH=' ~/.bashrc || cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF

source ~/.bashrc

read -p "Press any key to delete downloaded file: $fileName..."
rm -rf "$fileName"

@glowinthedark
Copy link

glowinthedark commented Sep 4, 2023

Universal script for the LATEST golang version

Uses the latest golang version endpoint

read -p "Press any key to delete the previous golang installation (if present)..."
rm -rf "/usr/local/go"
mkdir -p $HOME/go

cd /tmp
# see https://stackoverflow.com/a/46624091/191246
version=$(curl -s 'https://go.dev/VERSION?m=text' | head -n 1)
fileName="${version}.linux-armv6l.tar.gz"
wget -c https://go.dev/dl/$fileName && sudo rm -rfv /usr/local/go && sudo tar -C /usr/local -xvf $fileName

# add bash env vars if not already there
grep -q 'GOPATH=' ~/.bashrc || cat >> ~/.bashrc << 'EOF'
export GOPATH=$HOME/go
export PATH=/usr/local/go/bin:$PATH:$GOPATH/bin
EOF

source ~/.bashrc

read -p "Press any key to delete downloaded file: $fileName..."
rm -rf "$fileName"

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