這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
一、起因
golang出了最新的1.10版本,而剛出的vgo也是需要基於該最新版本的。為了測試vgo,因此需要將我的v1.9升級到v1.10版本。
安裝過golang的同學都知道,golang常用的有2種安裝方式。
- 直接安裝官方編譯好的包。比如下載go1.7.4.darwin-amd64.tar.gz
- 基於源碼進行編譯安裝。
下面來說說基於源碼編譯安裝。網上的很多教程在說明源碼安裝時,都在說明需要基於1.4.3版本,即先有一個母片本的go,再用來編譯最新要安裝的版本。
但是,我要說下但是。我最開始使用golang時,是直接下載的編譯包。直接繞開了早期的版本和母片本的問題。這次想升級,也不想再去下載基於用C寫的版本了。因此嘗試直接使用當前1.9版本進行升級安裝。
二、升級操作
當前環境說明:
2.1 下載源碼
這裡沒有從gitlhub下載。因為下載量會比較大。本次直接從官網進行下載。
#下載 go1.10 放在當前家目錄cd # 因為一些國內的網站還沒有最新的1.10的安裝包,因此才考慮使用源碼,# 但源碼下載也需要FQ,如果你用代理,可以直接在命令列加上代理export https_proxy=YOUR_IP:YOUR_PORTwget wget https://dl.google.com/go/go1.10.src.tar.gz# 解壓tar -zxvf go1.10.src.tar.gz
2.2 安裝
安裝前需要設定一個環境變數GOROOT_BOOTSTRAP。即用來指定當前golang的二進位目錄。
go env | egrep 'PATH|ROOT'GOPATH="/Users/song/jungleCode"GOROOT="/Users/song/go1.9"# set 環境變數GOROOT_BOOTSTRAP=/Users/song/go1.9/cd go1.10/src/time bash -x ./all.bash
啟動執行後,主要會進行如下操作:
- build相關的工具鏈toolchain。
- 對內建的package進行測試。
- 運行runtime,sync等
- 檢查競爭(Testing race detector)
- 進行API檢查
最後,完成安裝,安裝後的二進位在目前的目錄下的bin目錄。安裝用時1240秒。以後是安裝結束時的最後4行日誌。
# Installed Go for darwin/amd64 in /Users/song/go1.10# Installed commands in /Users/song/go1.10/bin# *** You need to add /Users/song/go1.10/bin to your PATH.# bash -x ./all.bash 1240.55s user 456.11s system 294% cpu 9:35.17 total
2.3 設定新環境
如上,已經產生了新的二進位。需要修改golang的環境變數GOROOT。
vim ~/.zshrc# 將GOROOT的值由/Users/song/go1.9改變/Users/song/go1.10source ~/.zshrcgo version# go version go1.10 darwin/amd64
大功告成。
終於可以玩vgo了。推薦2個連結。
https://zhuanlan.zhihu.com/p/33926171
https://zhuanlan.zhihu.com/p/33935373