g是一個Linux、macOS、Windows下的命令行工具,可以提供一個便捷的多版本go環境的管理和切換。
特性
- 支持列出可供安裝的go版本號
- 支持列出已安裝的go版本號
- 支持在本地安裝多個go版本
- 支持卸載已安裝的go版本
- 支持在已安裝的go版本之間自由切換
安裝
自動化安裝
-
Linux/macOS(適用於bash、zsh)
# 建議安裝前清空`GOROOT`、`GOBIN`等環境變量 $ wget -qO- https://raw.githubusercontent.com/voidint/g/master/install.sh | bash $ echo "unalias g" >> ~/.bashrc # 可選。若其他程序(如'git')使用了'g'作爲別名。 $ source ~/.bashrc # 或者 source ~/.zshrc
手動安裝
- 下載對應平臺的二進制壓縮包。
- 將壓縮包解壓至
PATH
環境變量目錄下,如/usr/local/bin
。 -
編輯shell環境配置文件(
~/.bashrc
、~/.zshrc
...)$ cat>>~/.bashrc<<EOF export GOROOT="${HOME}/.g/go" export PATH="${HOME}/.g/go/bin:$PATH" export G_MIRROR=https://golang.google.cn/dl/ EOF
使用
查詢當前可供安裝的stable
狀態的go版本
$ g ls-remote stable
1.11.9
1.12.4
安裝目標go版本1.12.4
$ g install 1.12.4
Installed successfully
$ go version
go version go1.12.4 darwin/amd64
查詢已安裝的go版本
$ g ls
1.12.4
查詢可供安裝的所有go版本
$ g ls-remote
1
1.2.2
1.3
1.3.1
... // 省略若干版本
1.11.7
1.11.8
1.11.9
1.12
1.12.1
1.12.2
1.12.3
1.12.4
安裝目標go版本1.11.9
$ g install 1.11.9
Installed successfully
$ go version
go version go1.11.9 darwin/amd64
切換到另一個已安裝的go版本
$ g ls
1.11.9
1.12.4
$ g use 1.12.4
go version go1.12.4 darwin/amd64
卸載一個已安裝的go版本
g uninstall 1.11.9
Uninstall successfully
FAQ
- 環境變量
G_MIRROR
有什麼作用?由於中國大陸無法自由訪問Golang官網,導致查詢及下載go版本都變得困難,因此可以通過該環境變量指定一個鏡像站點(如
https://golang.google.cn/dl/
),g將從該站點查詢、下載可用的go版本。 - 支持源代碼編譯安裝嗎?
不支持