驻马店市网站建设_网站建设公司_代码压缩_seo优化
2025/12/17 14:39:16 网站建设 项目流程

目的

为了解决golang升级复杂的手工操作流程,直接编写了bash脚本,获取最新的golang版本,然后删除旧版本,替换成新版本

脚本实现

#!/bin/bash# 1. 获取最新 Go 版本号
# 使用 go.dev 官方提供的文本接口获取最新版本号 (例如 go1.22.5)
echo "正在检查 Go 语言最新版本..."
LATEST_GO_VERSION=$(curl -s https://go.dev/VERSION?m=text | head -n 1)if [ -z "$LATEST_GO_VERSION" ]; thenecho "❌ 无法获取最新版本号,请检查网络连接。"exit 1
fiecho "✅ 检测到最新版本为: $LATEST_GO_VERSION"# 定义文件名
OS="linux"
ARCH="amd64" # 如果你是 ARM 架构 (如树莓派或某些云主机),请改为 arm64
FILE_NAME="$LATEST_GO_VERSION.$OS-$ARCH.tar.gz"
DOWNLOAD_URL="https://go.dev/dl/$FILE_NAME"# 2. 下载安装包
echo "⬇️  正在下载 $FILE_NAME ..."
wget -q --show-progress "$DOWNLOAD_URL"if [ $? -ne 0 ]; thenecho "❌ 下载失败,请检查网络或 URL。"exit 1
fi# 3. 清理旧版本 (关键步骤,防止文件冲突)
echo "🧹 正在清理旧版本 (/usr/local/go)..."
if [ -d "/usr/local/go" ]; thensudo rm -rf /usr/local/goecho "   已删除旧版本。"
elseecho "   未检测到旧版本,跳过清理。"
fi# 4. 解压新版本到 /usr/local
echo "📦 正在解压安装到 /usr/local ..."
sudo tar -C /usr/local -xzf "$FILE_NAME"# 清理下载的压缩包
rm -f "$FILE_NAME"# 5. 配置 Zsh 环境变量
# 检查是否已经配置过 PATH,避免重复添加
CONFIG_FILE="$HOME/.zshrc"
GO_BIN_PATH="/usr/local/go/bin"if grep -q "$GO_BIN_PATH" "$CONFIG_FILE"; thenecho "✅ 环境变量已存在于 $CONFIG_FILE,无需重复添加。"
elseecho "📝 正在添加环境变量到 $CONFIG_FILE ..."echo "" >> "$CONFIG_FILE"echo "# Go Language Path" >> "$CONFIG_FILE"echo "export PATH=\$PATH:$GO_BIN_PATH" >> "$CONFIG_FILE"echo "✅ 环境变量添加成功。"
fiecho "------------------------------------------------"
echo "🎉 安装/升级完成!"
echo "请执行以下命令使环境变量立即生效:"
echo "source $CONFIG_FILE"
echo ""
echo "验证安装:"
echo "go version"
echo "------------------------------------------------"

脚本功能说明

动态版本获取:脚本通过访问 https://go.dev/VERSION?m=text 自动获取当前官方最新的稳定版本号。这意味着下个月 Go 更新了,你再次运行这个脚本,它就会自动下载更新的版本。

安全清理:严格遵守官方建议,先执行 rm -rf /usr/local/go,确保新旧文件不会混杂导致损坏。

权限分离:脚本本身不需要用 root 运行,只在操作 /usr/local 系统目录时使用 sudo,这样可以避免把你的 ~/.zshrc 文件的权限错误地改成 root。

Zsh 适配:脚本专门针对 zsh,并具有幂等性(Idempotency),它会先检查你的配置文件里有没有加过 Path,如果加过就不会重复添加。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询