Linux安装go1.8脚本

新建一个installgo18.sh
写入内容如下,然后给到755权限执行

wget https://go.dev/dl/go1.18.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
source $HOME/.profile
source ~/.profile
go version

如果需要开启go111module和goproxy.cn的代理,直接在脚本后面加上两段命令就行

wget https://go.dev/dl/go1.18.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin' >> $HOME/.profile
source $HOME/.profile
source ~/.profile
go version
go env -w GO111MODULE=on 
go env -w GOPROXY=https://goproxy.cn,direct

2023年11月8日02点39分更新
找到了获取go版本的办法,讲一下内容保存为一个sh文件,bash .sh执行,脚本执行完成之后,手动执行 source ~/.bashrc命令,在当前用户下重新加载.basrc文件包含的环境变量。

#!/bin/bash


# 获取当前最新go版本和更新时间的内容
content=$(wget -qO- https://go.dev/VERSION?m=text)

# 使用awk命令分割内容并赋值给变量
version=$(echo $content | awk '{print $1}')
# update_time=$(echo $content | awk '{print $3}')

# 打印版本和更新时间
echo "Version: $version"
# echo "Update time: $update_time"

# 下载并安装最新版本的Go语言

wget https://golang.org/dl/$version.linux-amd64.tar.gz -O /tmp/go.tar.gz
tar -C /usr/local -xzf /tmp/go.tar.gz

# 设置环境变量
echo "export PATH=\$PATH:/usr/local/go/bin" >> ~/.bashrc
echo "export GOPATH=\$HOME/go" >> ~/.bashrc
echo "export PATH=\$PATH:\$GOPATH/bin" >> ~/.bashrc



# 完成安装
echo "$version install success"


echo "Please manually execute the [source ~/.bashrc] command to reload the ~/.bashrc file in the current user and refresh the environment variables."
本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 7

GO本身有工具支持安装多版本: go.dev/doc/manage-install

2年前 评论
yanling (楼主) 2年前

请问 这个脚本没用设置GOROOT和单独设置GOPATH吗 可以加上设置完后 自动 GO111MODULE=on 和goproxy.cn/ 也一起设置就好了 这样就可以偷懒了

2年前 评论
yanling (楼主) 2年前
yanling (楼主) 2年前
yanling (楼主) 2年前

#!/bin/bash

# 检查系统权限
if [ "$(whoami)" != "root" ]; then
  echo "请使用 root 权限运行此脚本!"
  exit 1
fi

# 检查 curl 命令是否存在
if ! command -v curl &> /dev/null
then
    echo "错误:curl 命令未找到,请先安装 curl。"
    exit 1
fi

# 获取最新版本信息
golang_version_info=$(curl -s https://go.dev/VERSION?m=text)
if [ $? -ne 0 ]; then
  echo "错误:无法从 go.dev 获取版本信息。"
  exit 1
fi
golang_version=$(echo "${golang_version_info}" | grep -oP 'go\d+\.\d+(?:\.\d+)?') # 提取版本号
if [ -z "${golang_version}" ]; then
  echo "错误:无法解析版本号。"
  exit 1
fi

# 下载 Golang 安装包
golang_url="https://dl.google.com/go/go${golang_version}.linux-amd64.tar.gz"
echo "正在下载 Golang ${golang_version} 安装包..."
wget -qO golang.tar.gz "${golang_url}"
if [ $? -ne 0 ]; then
  echo "错误:下载 Golang 安装包失败。"
  exit 1
fi

# 解压安装包
echo "正在解压安装包..."
tar -xzf golang.tar.gz -C /usr/local
if [ $? -ne 0 ]; then
  echo "错误:解压安装包失败。"
  exit 1
fi

# 设置环境变量 (添加到 /etc/profile)
echo "正在设置环境变量..."
if ! grep -q "export GOROOT=/usr/local/go" /etc/profile; then # 检查是否已存在,避免重复添加
  cat << EOF >> /etc/profile
export GOROOT=/usr/local/go
export GOPATH=\$HOME/go # 注意转义 $ 符号
export PATH=\$PATH:/usr/local/go/bin
EOF
fi

# 更新环境变量
source /etc/profile

# 删除临时文件
rm -f golang.tar.gz # -f 即可,golang.tar.gz 不太可能是目录

# 打印安装成功信息
echo "Golang ${golang_version} 安装成功!"
echo "请重启您的终端以使环境变量生效。"

exit 0 # 脚本成功退出
1周前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
1
粉丝
0
喜欢
0
收藏
1
排名:3356
访问:93
私信
所有博文
社区赞助商