golang基於當前1.9版本進行源碼編譯升級到1.10


一、起因

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個鏈接。

https://zhuanlan.zhihu.com/p/33926171

https://zhuanlan.zhihu.com/p/33935373


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM