Go 的环境安装和配置并不复杂,首先推荐看看官网的安装教程,介绍的非常全面详细。
如果想看中文,并拓展这方面的知识,推荐看《Go Web 编程》这边开源书籍中的第一章:Go 环境配置,作者 astaxie 已经讲解的非常全面直观。
但如果你有 Go 多版本的需求(比如新老版本共存),如果你想更简化 Go 环境配置(省去GOPATH、GOROOT等的配置),你还希望它支持跨平台(支持Mac和Linux),那么我特别推荐这款 Go 第三方工具:GVM—— Go 语言多版本安装及管理利器。
GVM,类似于ruby 中的 RVM,java 中的 jenv(国产),可用于方便管理 Go 的版本,它有如下几个主要特性:
管理 Go 的多个版本,包括安装、卸载和指定使用 Go 的某个版本
查看官方所有可用的 Go 版本,同时可以查看本地已安装和默认使用的 Go 版本
管理多个 GOPATH,并可编辑 Go 的环境变量
可将当前目录关联到 GOPATH
尤其是前三个特性,非常实用,接下来就详细的介绍一下这款工具的安装和常用方式。
一行脚本的事情:
bash < <(curl -s -S -L https://raw.githubusercontent. ... taller)
需要注意的是,如果本地用的是 zsh,直接替换 bash 即可。
直接输入 gvm
,查看使用帮助
☁ ~ gvm
Usage: gvm [command]
Description:
GVM is the Go Version Manager
Commands:
version - print the gvm version number
get - gets the latest code (for debugging)
use - select a go version to use (--default to set permanently)
diff - view changes to Go root
help - display this usage text
implode - completely remove gvm
install - install go versions
uninstall - uninstall go versions
cross - install go cross compilers
linkthis - link this directory into GOPATH
list - list installed go versions
listall - list available versions
alias - manage go version aliases
pkgset - manage go packages sets
pkgenv - edit the environment for a package set
帮助简单易懂,这里介绍其中其中几个常用的命令。
展示当前所有可以安装的 Go 版本,最新的是 go1.7.3
☁ ~ gvm listall
gvm gos (available)
go1
go1.0.1
go1.0.2
go1.0.3
...
go1.7.3
展示本地安装好的 Go 版本,箭头表示默认使用的版本,我这里是 go1.7.3
☁ ~ gvm list
gvm gos (installed)
go1.4
go1.5
go1.6.2
go1.6.3
go1.7
go1.7.1
=> go1.7.3
对比本地没有的版本,我们就可以在线安装你需要的版本了。
如果是 go 1.5-
的版本,直接安装:
gvm install go1.4
gvm use go1.4 [--default]
它背后做的事情是先把源码下载下来,再用 C 做编译。
所以如果是 go 1.5+
的版本,因为至此 Go 实现了自举(用 Go 编译 Go),就需要用到 Go 1.4 来做编译
# -B 表示只安装二进制包
gvm install go1.4 -B
gvm use go1.4
export GOROOT_BOOTSTRAP=$GOROOT
gvm install go1.7.3
安装好之后,指定默认使用这个版本,加上 --default
即可,省去每次敲 gvm use
gvm use go1.7.3 --default
这个时候查看 go 环境变量:
☁ ~ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/bingo/.gvm/pkgsets/go1.7.3/global"
GORACE=""
GOROOT="/Users/bingo/.gvm/gos/go1.7.3"
GOTOOLDIR="/Users/bingo/.gvm/gos/go1.7.3/pkg/tool/darwin_amd64"
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/g_/tjrlnbjd4sl56gp0p2nk3j5h0000gn/T/go-build385345518=/tmp/go-build -gno-record-gcc-switches -fno-common"
CXX="clang++"
CGO_ENABLED="1"
全部帮你配置好了,看起来非常赞!
GVM 还一个很实用的功能,可以管理多个 GOPATH
(Go package),是通过 gvm pkgset
命令
☁ ~ gvm pkgset
= gvm pkgset
* http://github.com/moovweb/gvm
== DESCRIPTION:
GVM pkgset is used to manage various Go packages
== Usage
gvm pkgset Command
== Command
create - create a new package set
delete - delete a package set
use - select where gb and goinstall target and link
empty - remove all code and compiled binaries from package set
list - list installed go packages
说明的很详细,使用方法和 gvm 也类似,就不赘述
如果只是想卸载某个安装好的 Go 版本:
gvm uninstall go1.7.3
如果你想完全卸载掉 GVM 和 所有安装的 Go 版本(需谨慎):
gvm implode
go env
获取gvm pkgset
创建多个 GOPATH,可能会占用你比较大的磁盘空间gvm implode
需谨慎shell
编写
转载来源:https://gocn.vip/article/107