是否存在始终指向最新Go二进制文件的静态URL?
获取Go最新版本静态下载链接的方案
官方方案(优先推荐)
Go官方没有提供直接指向最新二进制文件的静态URL,但可以通过两种可靠方式自动获取:
1. 官方JSON API获取版本号
利用官方提供的API接口获取最新稳定版的版本号,再拼接成下载链接:
# 获取最新稳定版版本号(需要jq工具) LATEST_GO_VERSION=$(curl -s "https://go.dev/dl/?mode=json&include=all" | jq -r '.[0].version') # 拼接对应平台的下载链接(以linux-amd64为例) DOWNLOAD_URL="https://go.dev/dl/${LATEST_GO_VERSION}.linux-amd64.tar.gz"
API返回的第一条数据就是最新稳定版,版本号格式为go1.xx.x,完全适配你原有的URL格式。
2. 追踪官方latest页面跳转
官方https://go.dev/dl/latest会自动跳转到最新版本的下载页,可通过curl追踪跳转并提取下载链接:
# 获取最新版本下载页的URL LATEST_PAGE_URL=$(curl -s -L -o /dev/null -w "%{url_effective}" https://go.dev/dl/latest) # 提取对应架构的下载链接(以linux-amd64为例) DOWNLOAD_URL=$(curl -s "$LATEST_PAGE_URL" | grep -o "https://dl.google.com/go/go[0-9.]*.linux-amd64.tar.gz" | head -1)
这种方式无需依赖jq,适合轻量化环境。
可信第三方方案
如果官方方案的解析逻辑对你来说过于繁琐,可使用以下长期维护的第三方跳转源:
- 使用
golang.org/dl/latest的API接口:
# 获取对应平台的最新二进制文件名,拼接下载链接 DOWNLOAD_URL=$(curl -s "https://golang.org/dl/latest?mode=json" | jq -r '.downloads."linux-amd64".filename' | xargs -I {} echo "https://dl.google.com/go/{}")
内容的提问来源于stack exchange,提问作者cyqsimon
相关产品推荐
相关产品推荐

