轉(zhuǎn) 2.3 在 Linux 上安裝 Go

如果你能夠自己下載并編譯 Go 的源代碼來說是非常有教育意義的,你可以根據(jù)這個頁面找到安裝指南和下載地址:Download the Go distribution。

我們接下來也會帶你一步步的完成安裝過程。

設(shè)置 Go 環(huán)境變量

我們在 Linux 系統(tǒng)下一般通過文件?$HOME/.bashrc?配置自定義環(huán)境變量,根據(jù)不同的發(fā)行版也可能是文件?$HOME/.profile,然后使用 gedit 或 vi 來編輯文件內(nèi)容。

export GOROOT=$HOME/go

為了確保相關(guān)文件在文件系統(tǒng)的任何地方都能被調(diào)用,你還需要添加以下內(nèi)容:

export PATH=$PATH:$GOROOT/bin

在開發(fā) Go 項(xiàng)目時,你還需要一個環(huán)境變量來保存你的工作目錄。

export GOPATH=$HOME/Applications/Go

$GOPATH?可以包含多個工作目錄,取決于你的個人情況。如果你設(shè)置了多個工作目錄,那么當(dāng)你在之后使用?go get(遠(yuǎn)程包安裝命令)時遠(yuǎn)程包將會被安裝在第一個目錄下。

在完成這些設(shè)置后,你需要在終端輸入指令?source .bashrc?以使這些環(huán)境變量生效。然后重啟終端,輸入?go env?和?env?來檢查環(huán)境變量是否設(shè)置正確。

安裝 C 工具

Go 的工具鏈?zhǔn)怯?C 語言編寫的,因此在安裝 Go 之前你需要先安裝相關(guān)的 C 工具。如果你使用的是 Ubuntu 的話,你可以在終端輸入以下指令(?譯者注:由于網(wǎng)絡(luò)環(huán)境的特殊性,你可能需要將每個工具分開安裝?)。

sudo apt-get install bison ed gawk gcc libc6-dev make

你可以在其它發(fā)行版上使用 RPM 之類的工具。

獲取 Go 源代碼

從?官方頁面?或?國內(nèi)鏡像?下載 Go 的源碼包到你的計(jì)算機(jī)上,然后將解壓后的目錄?go?通過命令移動到?$GOROOT?所指向的位置。

wget https://storage.googleapis.com/golang/go.src.tar.gz

tar -zxvf go.src.tar.gz

sudo mv go $GOROOT

構(gòu)建 Go

在終端使用以下指令來進(jìn)行編譯工作。

cd $GOROOT/src

./all.bash

在完成編譯之后(通常在 1 分鐘以內(nèi),如果你在 B 型樹莓派上編譯,一般需要 1 個小時),你會在終端看到如下信息被打?。?/p>

圖 2.3 完成編譯后在終端打印的信息

注意事項(xiàng)

在測試?net/http?包時有一個測試會嘗試連接?google.com,你可能會看到如下所示的一個無厘頭的錯誤報告:

‘make[2]: Leaving directory `/localusr/go/src/pkg/net’

如果你正在使用一個帶有防火墻的機(jī)器,我建議你可以在編譯過程中暫時關(guān)閉防火墻,以避免不必要的錯誤。

解決這個問題的另一個辦法是通過設(shè)置環(huán)境變量?$DISABLE_NET_TESTS?來告訴構(gòu)建工具忽略?net/http?包的相關(guān)測試:

export DISABLE_NET_TESTS=1

如果你完全不想運(yùn)行包的測試,你可以直接運(yùn)行?./make.bash?來進(jìn)行單純的構(gòu)建過程。

測試安裝

使用你最喜愛的編輯器來輸入以下內(nèi)容,并保存為文件名?test.go。

示例 2.1?hello_world1.go

packagemainfuncmain() {println("Hello","world")}

切換相關(guān)目錄到下,然后執(zhí)行指令?go run hello_world1.go,將會打印信息:Hello, world。

驗(yàn)證安裝版本

你可以通過在終端輸入指令?go version?來打印 Go 的版本信息。

如果你想要通過 Go 代碼在運(yùn)行時檢測版本,可以通過以下例子實(shí)現(xiàn)。

示例 2.2?version.go

packagemainimport("fmt""runtime")funcmain() {fmt.Printf("%s", runtime.Version())}

這段代碼將會輸出?go1.4.2?或類似字符串。

更新版本

你可以在?發(fā)布?xì)v史?頁面查看到最新的穩(wěn)定版。

當(dāng)前最新的穩(wěn)定版 Go 1 系列于 2012 年 3 月 28 日發(fā)布。

Go 的源代碼有以下三個分支:

- Go release:最新穩(wěn)定版,實(shí)際開發(fā)最佳選擇

- Go weekly:包含最近更新的版本,一般每周更新一次

- Go tip:永遠(yuǎn)保持最新的版本,相當(dāng)于內(nèi)測版

當(dāng)你在使用不同的版本時,注意官方博客發(fā)布的信息,因?yàn)槟闼殚喌奈臋n可能和你正在使用的版本不相符。

https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/02.3.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 申金鑫 17101223365 轉(zhuǎn)載自公眾號flysnow_org 【嵌牛導(dǎo)讀】:本文介紹了各種系統(tǒng)下的Go語言環(huán)...
    Felixxin閱讀 3,457評論 0 20
  • 1. 分布式系統(tǒng)核心問題 參考書籍:《區(qū)塊鏈原理、設(shè)計(jì)與應(yīng)用》 一致性問題例子:兩個不同的電影院買同一種電影票,如...
    molscar閱讀 1,003評論 0 0
  • linux資料總章2.1 1.0寫的不好抱歉 但是2.0已經(jīng)改了很多 但是錯誤還是無法避免 以后資料會慢慢更新 大...
    數(shù)據(jù)革命閱讀 13,219評論 2 33
  • 十八歲以來,很長一段時間都在思考,怎樣才是一種正確的生活方式。我盡力去按照著,我認(rèn)為的正確的方式去生活。 高三,高...
    昵稱我想不出來閱讀 256評論 0 0
  • 最近看了《微交互》感覺受益匪淺,原來設(shè)計(jì)無處不在無微不至,所以按照書中的思路分析了一個身邊的產(chǎn)品,并試著提出一些優(yōu)...
    gothicat閱讀 1,107評論 0 1

友情鏈接更多精彩內(nèi)容