89 lines
2.7 KiB
Go
89 lines
2.7 KiB
Go
#!/bin/bash
|
||
###############################################################################
|
||
# Install Golang 安装Golang,仅限linux系统. #
|
||
# Author: LiDong #
|
||
# Email: cnlidong@live.cn #
|
||
# Date: 2022-08-15 #
|
||
###############################################################################
|
||
# 出错退出
|
||
set -e
|
||
# 进入脚本所在目录
|
||
|
||
# 获取第一个参数设为版本号
|
||
VERSION=$1
|
||
# 判断版本号参数是否为空
|
||
if [ -z "$VERSION" ]; then
|
||
echo "Usage: $0 VERSION [mirror]"
|
||
echo "Example: $0 1.19.2 https://mirrors.aliyun.com/golang"
|
||
echo "You can visit https://go.dev/dl/ to find version"
|
||
exit 1
|
||
fi
|
||
echo "version: $VERSION"
|
||
# 获取第二个参数为镜像地址前缀
|
||
PREFIX=$2
|
||
# 判断镜像地址前缀参数是否为空
|
||
if [ -z "$PREFIX" ]; then
|
||
PREFIX="https://go.dev/dl"
|
||
fi
|
||
echo "prefix: $PREFIX"
|
||
# 判断当前用户是否为root,不是则退出
|
||
if [ "$(id -u)" != "0" ]; then
|
||
echo "Error: This script must be run as root."
|
||
echo "You can use 'sudo su' command switch to root "
|
||
exit 1
|
||
fi
|
||
# 安装Golang
|
||
echo "Install Golang..."
|
||
# 获取当前操作系统
|
||
OS=$(uname)
|
||
# 判断是否是Linux系统,如果不是则退出
|
||
if [ $OS != "Linux" ]; then
|
||
echo "Not Linux system, exit..."
|
||
exit
|
||
else
|
||
OS="linux"
|
||
fi
|
||
# 获取CPU类型
|
||
ARCH=$(uname -m)
|
||
# 转换CPU类型为go env arch格式
|
||
if [ $ARCH = "x86_64" ]; then
|
||
ARCH="amd64"
|
||
elif [ $ARCH = "i686" ]; then
|
||
ARCH="386"
|
||
elif [ $ARCH = "armv6l" ]; then
|
||
ARCH="armv6l"
|
||
elif [ $ARCH = "aarch64" ]; then
|
||
ARCH="arm64"
|
||
else
|
||
echo "Not support CPU, exit..."
|
||
exit
|
||
fi
|
||
# 安装Golang
|
||
echo "Download Golang..."
|
||
echo $PREFIX/go${VERSION}.$OS-$ARCH.tar.gz
|
||
curl -L $PREFIX/go${VERSION}.$OS-$ARCH.tar.gz -o /tmp/go${VERSION}.$OS-$ARCH.tar.gz
|
||
tar -C /usr/local -xzf /tmp/go${VERSION}.$OS-$ARCH.tar.gz
|
||
# 删除临时文件
|
||
rm -f /tmp/go${VERSION}.$OS-$ARCH.tar.gz
|
||
# 配置环境变量
|
||
echo 'export PATH=$PATH:/usr/local/node/bin' >>/etc/profile
|
||
|
||
echo 'export PATH=$PATH:/usr/local/go/bin' >>/etc/profile
|
||
|
||
source /etc/profile
|
||
|
||
echo 'export PATH=$PATH:$(go env GOPATH)/bin' >>/etc/profile
|
||
go env -w GO111MODULE=on
|
||
go env -w GOPROXY=https://goproxy.cn,direct
|
||
|
||
source /etc/profile
|
||
|
||
# 安装成功
|
||
echo "Install Golang success!"
|
||
# 查看Golang版本
|
||
go version
|
||
# 提示重启终端
|
||
echo "Please restart the terminal to take effect!"
|
||
echo "安装成功,请重启终端使其生效!"
|
||
echo "You can use 'source /etc/profile' command to make the PATH changes effective immediately."
|
||
echo "你可以使用 'source /etc/profile' 命令使其立即生效." |