一、起因
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版本進行升級安裝。
二、升級操作
當前環境說明:
- 系統:mac
- 二進制安裝目錄:~/go1.9/
2.1 下載源碼
這里沒有從gitlhub下載。因為下載量會比較大。本次直接從官網進行下載。
#下載 go1.10 放在當前家目錄
cd
# 因為一些國內的網站還沒有最新的1.10的安裝包,因此才考慮使用源碼,
# 但源碼下載也需要FQ,如果你用代理,可以直接在命令行加上代理
export https_proxy=YOUR_IP:YOUR_PORT
wget 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.10
source ~/.zshrc
go version
# go version go1.10 darwin/amd64
大功告成。
終於可以玩vgo了。推薦2個鏈接。