如果你能夠自己下載并編譯 Go 的源代碼來(lái)說(shuō)是非常有教育意義的,你可以根據(jù)這個(gè)頁(yè)面找到安裝指南和下載地址:Download the Go distribution碳竟。
我們接下來(lái)也會(huì)帶你一步步的完成安裝過(guò)程王暗。
設(shè)置 Go 環(huán)境變量
我們?cè)?Linux 系統(tǒng)下一般通過(guò)文件?$HOME/.bashrc?配置自定義環(huán)境變量兢孝,根據(jù)不同的發(fā)行版也可能是文件?$HOME/.profile疾渴,然后使用 gedit 或 vi 來(lái)編輯文件內(nèi)容集惋。
export GOROOT=$HOME/go
為了確保相關(guān)文件在文件系統(tǒng)的任何地方都能被調(diào)用,你還需要添加以下內(nèi)容:
export PATH=$PATH:$GOROOT/bin
在開(kāi)發(fā) Go 項(xiàng)目時(shí)竞思,你還需要一個(gè)環(huán)境變量來(lái)保存你的工作目錄桌粉。
export GOPATH=$HOME/Applications/Go
$GOPATH?可以包含多個(gè)工作目錄,取決于你的個(gè)人情況衙四。如果你設(shè)置了多個(gè)工作目錄铃肯,那么當(dāng)你在之后使用?go get(遠(yuǎn)程包安裝命令)時(shí)遠(yuǎn)程包將會(huì)被安裝在第一個(gè)目錄下。
在完成這些設(shè)置后传蹈,你需要在終端輸入指令?source .bashrc?以使這些環(huán)境變量生效押逼。然后重啟終端,輸入?go env?和?env?來(lái)檢查環(huán)境變量是否設(shè)置正確惦界。
安裝 C 工具
Go 的工具鏈?zhǔn)怯?C 語(yǔ)言編寫(xiě)的挑格,因此在安裝 Go 之前你需要先安裝相關(guān)的 C 工具。如果你使用的是 Ubuntu 的話(huà)沾歪,你可以在終端輸入以下指令(?譯者注:由于網(wǎng)絡(luò)環(huán)境的特殊性漂彤,你可能需要將每個(gè)工具分開(kāi)安裝?)。
sudo apt-get install bison ed gawk gcc libc6-dev make
你可以在其它發(fā)行版上使用 RPM 之類(lèi)的工具灾搏。
獲取 Go 源代碼
從?官方頁(yè)面?或?國(guó)內(nèi)鏡像?下載 Go 的源碼包到你的計(jì)算機(jī)上挫望,然后將解壓后的目錄?go?通過(guò)命令移動(dòng)到?$GOROOT?所指向的位置。
wget https://storage.googleapis.com/golang/go.src.tar.gz
tar -zxvf go.src.tar.gz
sudo mv go $GOROOT
構(gòu)建 Go
在終端使用以下指令來(lái)進(jìn)行編譯工作狂窑。
cd $GOROOT/src
./all.bash
在完成編譯之后(通常在 1 分鐘以?xún)?nèi)媳板,如果你在 B 型樹(shù)莓派上編譯,一般需要 1 個(gè)小時(shí))泉哈,你會(huì)在終端看到如下信息被打域刃摇:
圖 2.3 完成編譯后在終端打印的信息
注意事項(xiàng)
在測(cè)試?net/http?包時(shí)有一個(gè)測(cè)試會(huì)嘗試連接?google.com,你可能會(huì)看到如下所示的一個(gè)無(wú)厘頭的錯(cuò)誤報(bào)告:
‘make[2]: Leaving directory `/localusr/go/src/pkg/net’
如果你正在使用一個(gè)帶有防火墻的機(jī)器丛晦,我建議你可以在編譯過(guò)程中暫時(shí)關(guān)閉防火墻奕纫,以避免不必要的錯(cuò)誤。
解決這個(gè)問(wèn)題的另一個(gè)辦法是通過(guò)設(shè)置環(huán)境變量?$DISABLE_NET_TESTS?來(lái)告訴構(gòu)建工具忽略?net/http?包的相關(guān)測(cè)試:
export DISABLE_NET_TESTS=1
如果你完全不想運(yùn)行包的測(cè)試烫沙,你可以直接運(yùn)行?./make.bash?來(lái)進(jìn)行單純的構(gòu)建過(guò)程匹层。
測(cè)試安裝
使用你最喜愛(ài)的編輯器來(lái)輸入以下內(nèi)容,并保存為文件名?test.go斧吐。
示例 2.1?hello_world1.go
packagemainfuncmain() {println("Hello","world")}
切換相關(guān)目錄到下又固,然后執(zhí)行指令?go run hello_world1.go仲器,將會(huì)打印信息:Hello, world煤率。
驗(yàn)證安裝版本
你可以通過(guò)在終端輸入指令?go version?來(lái)打印 Go 的版本信息。
如果你想要通過(guò) Go 代碼在運(yùn)行時(shí)檢測(cè)版本乏冀,可以通過(guò)以下例子實(shí)現(xiàn)蝶糯。
示例 2.2?version.go
packagemainimport("fmt""runtime")funcmain() {fmt.Printf("%s", runtime.Version())}
這段代碼將會(huì)輸出?go1.4.2?或類(lèi)似字符串。
更新版本
你可以在?發(fā)布?xì)v史?頁(yè)面查看到最新的穩(wěn)定版辆沦。
當(dāng)前最新的穩(wěn)定版 Go 1 系列于 2012 年 3 月 28 日發(fā)布昼捍。
Go 的源代碼有以下三個(gè)分支:
- Go release:最新穩(wěn)定版识虚,實(shí)際開(kāi)發(fā)最佳選擇
- Go weekly:包含最近更新的版本,一般每周更新一次
- Go tip:永遠(yuǎn)保持最新的版本妒茬,相當(dāng)于內(nèi)測(cè)版
當(dāng)你在使用不同的版本時(shí)担锤,注意官方博客發(fā)布的信息,因?yàn)槟闼殚喌奈臋n可能和你正在使用的版本不相符乍钻。
https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.3.md