如果你能夠自己下載并編譯 Go 的源代碼來說是非常有教育意義的,你可以根據(jù)這個頁面找到安裝指南和下載地址:Download the Go distribution。
我們接下來也會帶你一步步的完成安裝過程。
設置 Go 環(huán)境變量
我們在 Linux 系統(tǒng)下一般通過文件 $HOME/.bashrc 配置自定義環(huán)境變量,根據(jù)不同的發(fā)行版也可能是文件 $HOME/.profile,然后使用 gedit 或 vi 來編輯文件內(nèi)容。
export GOROOT=$HOME/go
為了確保相關文件在文件系統(tǒng)的任何地方都能被調(diào)用,你還需要添加以下內(nèi)容:
export PATH=$PATH:$GOROOT/bin
在開發(fā) Go 項目時,你還需要一個環(huán)境變量來保存你的工作目錄。
export GOPATH=$HOME/Applications/Go
$GOPATH 可以包含多個工作目錄,取決于你的個人情況。如果你設置了多個工作目錄,那么當你在之后使用 go get(遠程包安裝命令)時遠程包將會被安裝在第一個目錄下。
在完成這些設置后,你需要在終端輸入指令 source .bashrc 以使這些環(huán)境變量生效。然后重啟終端,輸入 go env 和 env 來檢查環(huán)境變量是否設置正確。
安裝 C 工具
Go 的工具鏈是用 C 語言編寫的,因此在安裝 Go 之前你需要先安裝相關的 C 工具。如果你使用的是 Ubuntu 的話,你可以在終端輸入以下指令( 譯者注:由于網(wǎng)絡環(huán)境的特殊性,你可能需要將每個工具分開安裝 )。
sudo apt-get install bison ed gawk gcc libc6-dev make
你可以在其它發(fā)行版上使用 RPM 之類的工具。
獲取 Go 源代碼
從 官方頁面 或 國內(nèi)鏡像 下載 Go 的源碼包到你的計算機上,然后將解壓后的目錄 go 通過命令移動到 $GOROOT 所指向的位置。
wget https://storage.googleapis.com/golang/go<VERSION>.src.tar.gz
tar -zxvf go<VERSION>.src.tar.gz
sudo mv go $GOROOT
構建 Go
在終端使用以下指令來進行編譯工作。
cd $GOROOT/src
./all.bash
在完成編譯之后(通常在 1 分鐘以內(nèi),如果你在 B 型樹莓派上編譯,一般需要 1 個小時),你會在終端看到如下信息被打?。?/p>
http://wiki.jikexueyuan.com/project/the-way-to-go/images/2.3.allbash.png?raw=true" alt="" />
圖 2.3 完成編譯后在終端打印的信息
注意事項
在測試 net/http 包時有一個測試會嘗試連接 google.com,你可能會看到如下所示的一個無厘頭的錯誤報告:
‘make[2]: Leaving directory `/localusr/go/src/pkg/net’
如果你正在使用一個帶有防火墻的機器,我建議你可以在編譯過程中暫時關閉防火墻,以避免不必要的錯誤。
解決這個問題的另一個辦法是通過設置環(huán)境變量 $DISABLE_NET_TESTS 來告訴構建工具忽略 net/http 包的相關測試:
export DISABLE_NET_TESTS=1
如果你完全不想運行包的測試,你可以直接運行 ./make.bash 來進行單純的構建過程。
測試安裝
使用你最喜愛的編輯器來輸入以下內(nèi)容,并保存為文件名 test.go。
示例 2.1 hello_world1.go
package main
func main() {
println("Hello", "world")
}
切換相關目錄到下,然后執(zhí)行指令 go run hello_world1.go,將會打印信息:Hello, world。
驗證安裝版本
你可以通過在終端輸入指令 go version 來打印 Go 的版本信息。
如果你想要通過 Go 代碼在運行時檢測版本,可以通過以下例子實現(xiàn)。
示例 2.2 version.go
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Printf("%s", runtime.Version())
}
這段代碼將會輸出 go1.4.2 或類似字符串。
更新版本
你可以在 發(fā)布歷史 頁面查看到最新的穩(wěn)定版。
當前最新的穩(wěn)定版 Go 1 系列于 2012 年 3 月 28 日發(fā)布。
Go 的源代碼有以下三個分支:
- Go release:最新穩(wěn)定版,實際開發(fā)最佳選擇
- Go weekly:包含最近更新的版本,一般每周更新一次
- Go tip:永遠保持最新的版本,相當于內(nèi)測版
當你在使用不同的版本時,注意官方博客發(fā)布的信息,因為你所查閱的文檔可能和你正在使用的版本不相符。