你正在使用的Go版本是什么( go version
)?
$ go version
go version go1.20 darwin/amd64
这个问题在最新版本的发布中是否会重现?
是的
你正在使用什么操作系统和处理器架构( go env
)?
go env
输出
$ go env
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/stever/Library/Caches/go-build"
GOENV="/Users/stever/Library/Application Support/go/env"
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/stever/go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="darwin"
GOPATH="/Users/stever/go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.20"
GCCGO="gccgo"
GOAMD64="v1"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/dev/null"
GOWORK=""
CGO_CFLAGS="-O2 -g"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-O2 -g"
CGO_FFLAGS="-O2 -g"
CGO_LDFLAGS="-O2 -g"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/3y/936sl4d50dd_38rvrs041qn80000gn/T/go-build2823487662=/tmp/go-build -gno-record-gcc-switches -fno-common"
你做了什么?
不小心尝试安装了适用于ARM64的go1.20安装程序,而不是x86.64。
你期望看到什么?
一个错误消息,说我使用了错误的安装程序。
你看到了什么?
一个错误消息,说"Go无法在这个计算机上安装"。这个消息是不准确的;Go确实可以在这个计算机上安装——只是需要一个不同的安装程序。
2条答案
按热度按时间biswetbf1#
CC @golang/release
rm5edbpk2#
感谢报告。
我们正在使用Xcode工具创建一个相当标准的macOS安装程序(参见 here )。这有优点,比如提供熟悉、原生的外观和感觉,但缺点是我们只能进行支持的自定义。
"Go无法在此计算机上安装"的文本并不是直接来自我们的安装程序,安装程序根据 which architecture(s) are configured 自动报告每个安装程序的支持情况。这是必要的,以便例如Rosetta不会错误地要求arm64安装程序(问题 #43422 )。所以消息是准确的,但没有考虑到Go为amd64和arm64架构提供了macOS安装程序。
一个想法是我们可能能够调整文本,显示类似于"Go(适用于darwin/arm64)"而不是仅仅"Go"的内容。也许还有更多的自定义可以派上用场(例如,已经有了一个自定义检查到 report old macOS version )。否则,我们可能需要依赖 https://go.dev/dl/ 网站的文本,以最小化用户选择不符合他们需求的次优安装程序的可能性。