千家信息网

怎么使用GO语言

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要讲解了"怎么使用GO语言",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用GO语言"吧!什么是 GVMGo 语言版本管理器(GVM)是
千家信息网最后更新 2026年11月03日怎么使用GO语言

这篇文章主要讲解了"怎么使用GO语言",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么使用GO语言"吧!

什么是 GVM

Go 语言版本管理器(GVM)是管理 Go 语言环境的开源工具。GVM 「pkgsets」 支持安装多个版本的 Go 并管理每个项目的模块。它最初由 Josh Bussdieker 开发,GVM 与 Ruby RVM 类似,允许你为每个项目或一组项目创建一个开发环境,分离不同的 Go 版本和包依赖关系,来提供更大的灵活性,以防不同版本造成的问题。GVM 主要有以下几个特性:

  • 管理 Go 的多个版本,包括安装、卸载和指定使用 Go 的某个版本

  • 查看官方所有可用的 Go 版本,同时可以查看本地已安装和默认使用的 Go 版本

  • 管理多个 GOPATH,并可编辑 Go 的环境变量

  • 可将当前目录关联到 GOPATH

  • 可以查看 GOROOT 下的文件差异

  • 支持 Go 版本切换

安装 GVM

GVM 本质上就是一个 SHELL 脚本,它背后做的事情是先把源码下载下来,再用 C 做编译。所以,安装 GVM 前你需要先安装一些依赖包。

# Debian/Ubuntu $ sudo apt-get install curl git mercurial make binutils bison gcc build-essential # Redhat/Centos $ sudo yum install curl $ sudo yum install git $ sudo yum install make $ sudo yum install bison $ sudo yum install gcc $ sudo yum install glibc-devel # macOS $ xcode-select --install $ brew update $ brew install mercurial

安装好依赖环境后, GVM 的安装也很简单。官方提供了一键安装脚本,你只需直接运行就行了。

如果你使用的是 zsh 的话将前面的 bash 改为 zsh 即可,这条命令主要是检查相关依赖环境并下载 GVM 相关的文件,然后创建所需目录,并且在 .bashrc 或者 .zshrc 中加入:

[[ -s "/home/wcl/.gvm/scripts/gvm" ]] && source "/home/wcl/.gvm/scripts/gvm"

使每次登录 Shell 时都可以自动生效。

使用 GVM 安装和管理 Go 版本

一旦安装了 GVM,就可以开始使用它来安装和管理不同版本的 Go。首先,你可以用 gvm listall 命令显示可以下载和编译可用的 Go 版本。

$ gvm listall  gvm gos (available)  go1  go1.0.1  go1.0.2  go1.0.3  ...

安装特定的 Go 版本只需运行 gvm install 命令,其中 是表示要安装的版本。假设你正在处理一个使用 Go 1.12.8 版本的项目,你就可以使用 gvm install go1.12.8 命令来安装这个版本。

$ gvm install go1.12.8  Installing go1.12.8...  * Compiling...  go1.12.8 successfully installed!

安装完成后,输入 gvm list 命令后,你会看到 Go 1.12.8 版本与系统自带的 Go 版本(使用操作系统的软件包管理器打包的版本)都同时存在。

$ gvm list  gvm gos (installed)  go1.12.8  => system

不过,这时 GVM 仍然默认使用系统的 Go 版本,通过它旁边的 => 符号来表示。你可以使用 gvm use 命令来切换到新安装的 go 1.12.8 版本。

$ gvm use go1.12.8  Now using version go1.12.8  $ go version  go version go1.12.8 linux/amd64

如果不想每次敲 gvm use 指令来切换版本,你可以加上 --default 参数来指定默认使用这个版本。

$ gvm use go1.12.8 --default

是不是,很容易呢!GVM 使管理已安装的 Go 版本变得极其简单,但它不止如此!

由于 Go 1.5 使用了自举(用 Go 编译 Go),如果在系统环境完全没有 Go 命令的情况下,直接使用 gvm install go 会报错。所以,你必须先安装 Go 1.4。

# 先安装 1.4 版本的,-B 表示只安装二进制包。 $ gvm install go1.4 -B $ gvm use go1.4 $ export GOROOT_BOOTSTRAP=$GOROOT # 再安装 1.5+ 版本的 $ gvm install go1.12.8

使用 GVM pkgset

默认情况下,如果你通过 go get 获取一个包,它会被下载到 $GOPATH 目录中的 src 和 pkg 目录下。然后你可以使用 import 将其引入到你的 Go 程序中。然而,在不同的项目中管理相同包的不同版本就会变得困难。

GVM 通过使用「pkgsets」将项目的新目录附加到 Go 安装版本的默认 $GOPATH,类似 Linux 系统上的 $PATH,这样就可以很好地完成了项目之间包的管理和隔离。我们来看一个实例,安装一个新版本的 Go 1.12.9。

$ echo $GOPATH /home/chris/.gvm/pkgsets/go1.12.8/global $ gvm install go1.12.9 Installing go1.12.9... * Compiling... go1.12.9 successfully installed $ gvm use go1.12.9 Now using version go1.12.9

当 GVM 被告知使用一个新版本时,它将会更换一个新的 $GOPATH,gloabl pkgset 将默认使用该版本。

$ echo $GOPATH  /home/chris/.gvm/pkgsets/go1.12.9/global  $ gvm pkgset list  gvm go package sets (go1.12.9)  => global

尽管默认情况下没有安装额外的包,但是 global pkgset 中的包对于使用这个特定版本 Go 的任何项目都是可用的。

现在,假设你正在启动一个新项目,它需要一个特定的包。首先,使用 GVM 创建一个名为 introToGvm 的新的 pkgset。

$ gvm pkgset create introToGvm $ gvm pkgset use introToGvm Now using version go1.12.9@introToGvm $ gvm pkgset list gvm go package sets (go1.12.9) global => introToGvm

如上所述,一个与 pkgset 同名的新目录 introToGvm 被添加到 $GOPATH。

$ echo $GOPATH /home/chris/.gvm/pkgsets/go1.12.9/introToGvm:/home/chris/.gvm/pkgsets/go1.12.9/global

接下来,验证下新目录 introToGvm 中的目录结构。

$ cd $( awk -F':' '{print $1}' <<< $GOPATH )  $ pwd  /home/chris/.gvm/pkgsets/go1.12.9/introToGvm  $ ls  overlay pkg src

注意:新目录看起来很像普通的 $GOPATH,新的 Go 包会被 Go get 命令下载并且被添加到 pkgset 中。

gorilla/mux 按照预期添加到了 pkgset 的 $GOPATH 目录,现在你就可以与使用该 pkgset 的项目一起使用该模块了。

卸载 GVM 或指定版本 Go 语言

如果你只是想卸载某个安装好的 Go 版本,可以使用以下指令。

$ gvm uninstall go1.12.8

如果你想完全卸载掉 GVM 和 所有安装的 Go 版本,可以使用以下指令。

# 需谨慎操作  $ gvm implode

感谢各位的阅读,以上就是"怎么使用GO语言"的内容了,经过本文的学习后,相信大家对怎么使用GO语言这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

版本 管理 目录 项目 命令 语言 环境 不同 系统 情况 多个 指令 切换 学习 编译 内容 只需 可以使 同时 官方 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技企业 百单网互联网科技有限公司 广州为想互联网科技有限公司 互联网科技集团 亿策互联网科技 宜安科技 互联网金融 互联网金融科技平台 融贸通互联网科技 博兴的互联网电子科技公司 互联网科技有哪些公司 知域互联网科技有限公司大骗子 互联网与医疗科技 本届互联网博览会上的黑科技 洛阳共同富裕互联网科技有限公司 银行科技岗属于互联网吗 互联网营销推广黑科技 互联网科技资金流入 普陀区互联网教育科技管理办法 西安左小互联网科技有限公司 互联网科技品牌 互联网科技公司排名 华服互联网科技靠谱吗 互联网属科技 科技赋能互联网健康 互联网金融科技公司干啥的 国大互联网教育科技有限公司薪资 互联网方面的科技前沿 有人说阿里系是互联网科技企业 南京一网一红互联网科技有限公司 互联网 科技节活动 微视频大赛
0