Mac 利用 GVM 管理多版本 Go 情况

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
利用 GVM 管理多版本 Go 情况

在本文中,我们将利用 gvm(Go Version Manager)工具管理当地多个 Go 语言版本。gvm 功能雷同于 Python 的 Anaconda,可以方便地切换不同版本的 Go 情况,非常得当需要多版本开发与测试的场景。
需要留意的是,gvm 在第一次安装 Go 时,需要终端情况中已经存在一个可用的 Go 语言版本,因为 gvm 需要依赖现有的 Go 情况来编译安装新的版本。为了满足这一需求,我们可以利用 macOS 的 Homebrew 先安装一个临时的 Go 版本,待 gvm 安装完成后,再将 Homebrew 安装的 Go 删除。

1. 利用 Homebrew 安装 Go

起首,我们需要通过 Homebrew 安装一个底子版本的 Go:
  1. # 安装 Go
  2. brew install go
  3. # 验证安装是否成功
  4. go version
  5. which go
复制代码
运行以上命令后,你应该可以看到当前安装的 Go 版本号以及 Go 可执行文件的路径。

2. 安装 GVM

接下来,我们安装 gvm 工具。gvm 会被安装到用户的主目次下(~/.gvm):
  1. # 安装 gvm
  2. bash < <(curl -sSL https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
  3. # 安装完成后,加载 gvm
  4. source ~/.gvm/scripts/gvm
复制代码
运行上述命令后,gvm 应该已经成功安装,可以通过以下命令验证:
  1. gvm version
复制代码

3. 利用 GVM 安装 Go

现在我们可以利用 gvm 安装和管理多个 Go 版本。
检察可用的 Go 版本

  1. gvm list
  2. all
复制代码
gvm 会列出全部可用的 Go 版本,你可以选择此中一个版本进行安装。
安装特定版本的 Go

  1. gvm install go1.20
复制代码
安装完成后,你可以通过以下命令检察已安装的版本:
  1. gvm list
复制代码
删除 Homebrew 安装的 Go

由于 gvm 已经安装了 Go,现在可以删除通过 Homebrew 安装的临时 Go:
  1. brew uninstall go
复制代码
切换到某个版本的 Go

  1. gvm use go1.20 --default
复制代码
这会将 Go 的默认版本设置为 go1.20,后续每次打开终端时都会自动利用该版本。
验证安装

  1. go version
  2. which go
复制代码
运行以上命令,确保 go 的版本和路径都指向 gvm 管理的版本。

4. 安装其他版本的 Go

如果需要安装其他版本的 Go,比方 go1.23.5,可以运行以下命令:
  1. gvm install go1.23.5
复制代码
安装完成后,你可以随时通过 gvm use 切换版本,或者利用 gvm use go1.23.5 --default 将其设置为默认版本。

5. 在 VS Code 中利用 Go

在开发过程中,我们通常会利用 VS Code 作为 Go 语言的 IDE。为了支持 Go 的开发,你需要安装官方的 Go 插件:

  • 打开 VS Code 的扩展市场(Extensions)。
  • 搜刮并安装 Go 插件。
  • 插件安装完成后,VS Code 会自动检测你的 Go 情况。
如果 VS Code 没有正确辨认你通过 gvm 安装的 Go 版本,可以参考以下步骤手动配置:


  • 打开 VS Code 设置(Cmd + , 或 Ctrl + ,)。
  • 搜刮 Go: GOROOT,并将其设置为 gvm 中的 Go 路径,比方:
    1. ~/.gvm/gos/go1.20
    复制代码
在 VS Code 中调试情况变量

在 VS Code 的集成终端中,运行以下命令,确保它能够正确辨认 gvm 管理的 Go 版本:
  1. go version
  2. go env
复制代码
如果 VS Code 的终端与外部终端行为不同等(比方无法正确辨认 GOROOT),可以在 VS Code 的设置中配置终端情况变量。

6. 情况变量及相干命令

在 Go 开发中,情况变量(如 GOPATH、GOROOT 等)非常重要,以下是一些常用的情况变量管理和调试命令:
检察当前 Go 情况变量

运行以下命令检察当前 Go 情况的全部配置:
  1. go env
复制代码
你会看到雷同的输出:
  1. GO111MODULE="on"
  2. GOPATH="/Users/yourname/go"
  3. GOROOT="/Users/yourname/.gvm/gos/go1.20"
复制代码
检察特定情况变量

如果只想检察某个情况变量的值,可以运行:
  1. go env
  2. GOROOTgo env
  3. GOPATH
复制代码
设置 GOPATH

如果需要自界说 GOPATH,可以在 shell 配置文件(如 ~/.bashrc 或 ~/.zshrc)中添加以下内容:
  1. export GOPATH=$HOME/go
  2. export PATH=$GOPATH/bin:$PATH
复制代码
然后运行以下命令使配置见效:
  1. source ~/.bashrc    # 如果使用 bash
  2. source ~/.zshrc     # 如果使用 zsh
复制代码
查抄 Go 的可执行文件路径

  1. which go
复制代码
这个命令会返回当前终端中利用的 go 的可执行文件路径(比方 ~/.gvm/gos/go1.20
/bin/go)。如果路径不正确,可以查抄是否存在多个 Go 版本冲突。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

悠扬随风

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表