Go Version Manager


整理在 OS X 使用 Go Version Manager 的筆記,類似於 Node.js 的 NVM ,方便設定 golang version 的管理工具。

在開始之前 …

刪除系統的 golang

1
2
sudo rm -rvf /usr/local/go/
sudo rm -rvf /usr/local/bin/go

砍掉舊的 gvm

1
rm -rf ~/.gvm

安裝 gvm

1
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)

安裝好後,記得在 $HOME/.bashrc$HOME/.bash_profile 新增以下:

1
[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm"

確認是否已經安裝好,開新的 terminal session

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
~$ 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

安裝 golang

透過 gvm install go1.9.7 指定安裝版本,但是一直鬼打牆無法安裝:

1
2
3
4
5
6
7
8
9
10
11
12
~$ gvm install go1.9.7
Downloading Go source...
Installing go1.9.7...
* Compiling...
ERROR: Failed to compile. Check the logs at /Users/rick/.gvm/logs/go-go1.9.7-compile.log
ERROR: Failed to use installed version

~$ cat /Users/rick/.gvm/logs/go-go1.9.7-compile.log
##### Building Go bootstrap tool.
cmd/dist
ERROR: Cannot find /Users/rick/go1.4/bin/go.
Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.

需要 Go1.4 用來 compile 一些東西,裝 go 前要先裝 go?啥鬼 @@

後來找到 這篇,直接安裝 Binary 如下:

1
2
3
4
5
6
7
8
~$ gvm install go1.9.7 --binary
# 或者
~$ gvm install go1.9.7 --B
Installing go1.9.7 from binary source

## 設定為預設版本
~$ gvm use go1.9.7 --default
Now using version go1.9.7

其他

整理其他生命週期 (增刪查改) 會使用的參數:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
## 顯示已經安裝在本地的版本
~$ gvm list

## 顯示遠端可用的版本
~$ gvm listall

## 重新編譯(Compile)特定版本,需要先安裝好 Go1.4
~$ gvm install <version>

## 直接安裝 Binary,不需要編譯
~$ gvm install <version> -B
# 或者
~$ gvm install <version> -binary

# 刪除 gvm
~$ gvm implode
Are you sure? [Y/n] y
GVM successfully removed
~$ gvm
ERROR: GVM_ROOT does not exist. Please reinstall GVM

這樣大概可以滿足新機器安裝時遇到大部分的問題。

延伸閱讀

參考資料


Comments