GVM 與 Go 語言的環境如何安裝、架設

Golang 想要有多個版本同時可以執行的環境,可以安裝 GVM 來切換管理,不過想要從一開始就直接使用 GVM 安裝,要怎麼做呢?

GVM 與 Go 語言的環境如何安裝、架設

GVM 官網:Go Version Manager

於 Debain / Ubuntu Linux 安裝環境

  • sudo apt-get install curl git mercurial make binutils bison gcc build-essential

GVM 環境安裝

  • bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
  • 上述命令執行完,就已經有 gvm 可以使用了

使用 GVM 安裝 Golang

安裝 go1.6 與 go1.4 失敗的情況

  1. $ gvm install go1.6
    Installing go1.6...
    * Compiling...
    ERROR: Failed to compile. Check the logs at /home/user/.gvm/logs/go-go1.6-compile.log
  2. $ cat /home/user/.gvm/logs/go-go1.6-compile.log
    cmd/dist
    ERROR: Cannot find /home/user/go1.4/bin/go.
    Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
  3. 由此看到想要安裝 go1.6 需要安裝 go1.4 並設定 $GOROOT_BOOTSTRAP
  4. $ gvm install go1.4
    Installing go1.4...
    * Compiling...
    ERROR: Failed to compile. Check the logs at /home/jon/.gvm/logs/go-go1.4-compile.log
  5. $ cat /home/jon/.gvm/logs/go-go1.4-compile.log
    ##### Building Go bootstrap tool.
    cmd/dist
    ERROR: Cannot find /home/jon/go1.4/bin/go.
    Set $GOROOT_BOOTSTRAP to a working Go tree >= Go 1.4.
  6. 結果 go1.4 不給安裝,也是一樣的訊息

使用 GVM 安裝 Go 1.6、Go1.4 與各種版本的做法(首次安裝)

  1. gvm install go1.4 --binary # 直接安裝 binary
  2. gvm use go1.4 # 使用 go1.4 的環境
  3. export GOROOTBOOTSTRAP=$GOROOT # 設定 $GOROOTBOOTSTRAP
  4. gvm install go1.6 # 安裝 Go 1.6
    Installing go1.6...

    • Compiling...
      go1.6 successfully installed!
  5. gvm use go1.6 # 就有 go 1.6 可以使用囉~
  6. go version
    go version go1.6 linux/amd64
  7. 再來要安裝其它版本,只要 gvm install 即可。

Go get 套件位置

gvm 後,使用 go get 安裝 package 或 library 會放在哪裡?

  • /home/user/.gvm/pkgsets/go$VERSION/global/src
  • example:/home/user/.gvm/pkgsets/go1.8/global/src

GVM 基本命令

  • gvm list # 列出目前 gvm 有安裝的 Go 版本
  • gvm listall # 列出所有 gvm 可以安裝的 Go 版本
  • gvm use # 使用 Go 的指定版本
  • gvm implode # gvm 含安裝的 Go 全部移除
  • gvm unlistall # 移除 Go 版本
  • gvm help # help

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料