背景
由于最近手动清理了macos的缓存,包括go缓存,导致“项目X”中go1.24 sdk 环境没有了。我本地全局环境是go1.20.14。"项目X"使用的是go1.24环境。
解决方法
https://golang.google.cn/dl/
手动下载go1.25.5压缩包, goland 偏好设置 goroot 指向这个压缩包解压缩的位置,结果报错。
dyld: Symbol not found: _SecTrustCopyCertificateChain Referenced from: /Users/Documents/gopath/go1.25.5/bin/go (which was built for Mac OS X 12.0) Expected in: /System/Library/Frameworks/Security.framework/Versions/A/Security in /Users/Documents/gopath/go1.25.5/bin/go原因是:
Go 1.25.5 作为 Go 1.25 系列的更新版本,其最低 macOS 系统支持与 Go 1.25 主版本一致。Go 1.25 系列要求macOS 12 Monterey 或更高版本,并已停止对更早版本的支持;因此,Go 1.25.5 也需满足此最低系统要求。
下载go1.24.11,完美解决。
结束语
疑问:此处有疑问的地方是,我当初go mod init 项目X的时候,并未主动下载go.1.24的包,也未设置goroot。
它是自动下载的go 1.24,然后goland自动设置的goroot go1.24,因为我当时跟本不知道go1.24装到哪里了。
这次是解压缩的go1.24是我自己指定的位置。
我在清理本机缓存的时候,确实删除过go1.24.zip,但我忘记是在哪个目录删的。
希望有知道原因的小伙伴给个留言。
参考
- 分享一个goland使用多版本go sdk的方法