mac 升级、降级、切换go版本

11,375 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第11天,点击查看活动详情

最近在进行go 开发时候 遇到了版本问题。在goland 中开发遇到了一个问题,引入一些包异常,提示main包冲突。

比如说引入 go 中自带的time、http包的时候 ,下边一直有红色的波浪线,提示main包冲突。

我用的是go 1.19 ,可能因为go 版本太新了,这个错误在网上很难搜索到,所以我就在这里记录一下。因为是我更新完go的版本之后的问题,所以大概率是 go的version 问题。降级了一下 就给问题 解决了(降级的版本是 version 1.17).

因为 我用的是mac ,所以就用了 比较方便的 brew 安装的go ,这里就记录一下 brew 管理go version 。

其实 用 brew 来管理应用的版本,除了版本升级的操作不一样之外,升级、降级 的操作都是一样的。

降级 go

查看 go version

➜  ~ go version
go version go1.19.10 darwin/amd64

安装 指定版本的go

$ brew install go@1.17
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> Updated Formulae
openssl@1.1 ✔
==> Downloading https://homebrew.bintray.com/bottles/go@1.12-1.12.9.mojave.bottle.tar.gz
Already downloaded: /Users/username/Library/Caches/Homebrew/downloads/6392e5d3faa67a6132d43699cf470ecc764ba42f38cce8cdccb785c587b8bda8--go@1.12-1.12.9.mojave.bottle.tar.gz
==> Pouring go@1.17-1.17.9.mojave.bottle.tar.gz
==> Caveats
go@1.12 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have go@1.17 first in your PATH run:
  echo 'export PATH="/usr/local/opt/go@1.12/bin:$PATH"' >> ~/.zshrc

==> Summary
  /usr/local/Cellar/go@1.17/1.17.9: 9,819 files, 452.8MB

取消 go 与之版本的链接

$ brew unlink go
Unlinking /usr/local/Cellar/go/1.19... 3 symlinks removed

与新装的 go 版本建立链接

$ brew link --force go@1.17
Linking /usr/local/Cellar/go@1.19/1.19.9... 3 symlinks created

If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/go@1.12/bin:$PATH"' >> ~/.zshrc

新开终端 查看 go version

一定要新开终端 来查看,因为 已经打开的终端中的配置文件,已经读取了 shell的相关配置,所以我们要重新打开一个窗口来看。(可以用快捷键 command + n)

image.png