-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-go.sh
68 lines (55 loc) · 1.37 KB
/
install-go.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/bin/bash
#-----------------------------------------------------------------------
# Linux (Linux/x86_64, Darwin/x86_64, Linux/armv7l)
#
# install-go.sh - Install Go
#
# usage: install-go.sh
#
# Copyright (c) 2017, 2018 Takeshi Yonezu
# All Rights Reserved.
#-----------------------------------------------------------------------
logmsg() {
echo ">>> $1"
}
#
# Install Go
#
VERSION=1.23.6
## VERSION=1.22.5
## VERSION=1.21.7
## VERSION=1.20.7
## VERSION=1.19.6
## VERSION=1.18.9
## VERSION=1.17.13
## VERSION=1.16.15
## VERSION=1.15.15
OS=$(uname -s)
ARCH=$(uname -m)
logmsg "Install Go ${VERSION}"
case ${OS} in
Linux) OS=linux;;
Darwin) OS=darwin;;
*) echo "${OS}-${ARCH} does'nt supported yet."; exit 1;;
esac
# arm64 is also supported and binaries are distributed from Go version 1.8.5
case ${ARCH} in
x86_64) ARCH=amd64;;
aarch64) ARCH=arm64;;
armv7l) ARCH=armv6l;;
arm64) ARCH=arm64;; # For Mac Apple M1 version
*) echo "${OS}-${ARCH} does'nt supported yet."; exit 1;;
esac
cd /var/tmp
wget -N https://go.dev/dl/go${VERSION}.${OS}-${ARCH}.tar.gz
sudo rm -fr /usr/local/go
sudo tar -C /usr/local -xzf go${VERSION}.${OS}-${ARCH}.tar.gz
rm go${VERSION}.${OS}-${ARCH}.tar.gz
if ! grep -q GOPATH ~/.bashrc; then
cat >>~/.bashrc <<EOF
export GOPATH=\${HOME}/go
export PATH=\${HOME}/go/bin:/usr/local/go/bin:\${PATH}
EOF
fi
/usr/local/go/bin/go version
exit 0