二進(jìn)制包安裝的話:如果安裝在了默認(rèn)位置例如/usr/local/go (Windows系統(tǒng):c:\Go)這個(gè)時(shí)候可以不需要設(shè)置GOROOT,如果改變了安裝的這個(gè)默認(rèn)目錄,那么就需要設(shè)置GOROOTGOROOT的概念有點(diǎn)Go安裝目錄的意思GOPATH是一個(gè)開(kāi)發(fā)環(huán)境目錄的意思,下面必須包含bin、pkg、src,然后再src下面新建項(xiàng)目就可以了你在沒(méi)有設(shè)置GOPATH的情況下,也可以把項(xiàng)目建在GOROOT/src下面,其實(shí)和GOPATH的概念類(lèi)似
成都創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供賈汪企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、H5頁(yè)面制作、小程序制作等業(yè)務(wù)。10年已為賈汪眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
1.1 Go 安裝
Go的三種安裝方式
Go有多種安裝方式,你可以選擇自己喜歡的。這里我們介紹三種最常見(jiàn)的安裝方式:
Go源碼安裝:這是一種標(biāo)準(zhǔn)的軟件安裝方式。對(duì)于經(jīng)常使用Unix類(lèi)系統(tǒng)的用戶,尤其對(duì)于開(kāi)發(fā)者來(lái)說(shuō),從源碼安裝可以自己定制。
Go標(biāo)準(zhǔn)包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統(tǒng)。這種方式適合快速安裝,可根據(jù)自己的系統(tǒng)位數(shù)下載好相應(yīng)的安裝包,一路next就可以輕松安裝了。**推薦這種方式**
第三方工具安裝:目前有很多方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應(yīng)系統(tǒng)的用戶。
最后,如果你想在同一個(gè)系統(tǒng)中安裝多個(gè)版本的Go,你可以參考第三方工具GVM,這是目前在這方面做得最好的工具,除非你知道怎么處理。
Go源碼安裝
在Go的源代碼中,有些部分是用Plan 9 C和ATT匯編寫(xiě)的,因此假如你要想從源碼安裝,就必須安裝C的編譯工具。
在Mac系統(tǒng)中,只要你安裝了Xcode,就已經(jīng)包含了相應(yīng)的編譯工具。
在類(lèi)Unix系統(tǒng)中,需要安裝gcc等工具。例如Ubuntu系統(tǒng)可通過(guò)在終端中執(zhí)行sudo apt-get install gcc
libc6-dev來(lái)安裝編譯工具。
在Windows系統(tǒng)中,你需要安裝MinGW,然后通過(guò)MinGW安裝gcc,并設(shè)置相應(yīng)的環(huán)境變量。
你可以直接去官網(wǎng)下載源碼,找相應(yīng)的goVERSION.src.tar.gz的文件下載,下載之后解壓縮到$HOME目錄,執(zhí)行如下代碼:
cd go/src
./all.bash
運(yùn)行all.bash后出現(xiàn)"ALL TESTS PASSED"字樣時(shí)才算安裝成功。
上面是Unix風(fēng)格的命令,Windows下的安裝方式類(lèi)似,只不過(guò)是運(yùn)行all.bat,調(diào)用的編譯器是MinGW的gcc。
如果是Mac或者Unix用戶需要設(shè)置幾個(gè)環(huán)境變量,如果想重啟之后也能生效的話把下面的命令寫(xiě)到.bashrc或者.zshrc里面,
export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin
如果你是寫(xiě)入文件的,記得執(zhí)行bash .bashrc或者bash
.zshrc使得設(shè)置立馬生效。
如果是window系統(tǒng),就需要設(shè)置環(huán)境變量,在path里面增加相應(yīng)的go所在的目錄,設(shè)置gopath變量。
當(dāng)你設(shè)置完畢之后在命令行里面輸入go,看到如下圖片即說(shuō)明你已經(jīng)安裝成功
圖1.1 源碼安裝之后執(zhí)行Go命令的圖
如果出現(xiàn)Go的Usage信息,那么說(shuō)明Go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了Go的安裝目錄。
關(guān)于上面的GOPATH將在下面小節(jié)詳細(xì)講解
Go標(biāo)準(zhǔn)包安裝
Go提供了每個(gè)平臺(tái)打好包的一鍵安裝,這些包默認(rèn)會(huì)安裝到如下目錄:/usr/local/go
(Windows系統(tǒng):c:\Go),當(dāng)然你可以改變他們的安裝位置,但是改變之后你必須在你的環(huán)境變量中設(shè)置如下信息:
export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
上面這些命令對(duì)于Mac和Unix用戶來(lái)說(shuō)最好是寫(xiě)入.bashrc或者.zshrc文件,對(duì)于windows用戶來(lái)說(shuō)當(dāng)然是寫(xiě)入環(huán)境變量。
如何判斷自己的操作系統(tǒng)是32位還是64位?
我們接下來(lái)的Go安裝需要判斷操作系統(tǒng)的位數(shù),所以這小節(jié)我們先確定自己的系統(tǒng)類(lèi)型。
Windows系統(tǒng)用戶請(qǐng)按Win+R運(yùn)行cmd,輸入systeminfo后回車(chē),稍等片刻,會(huì)出現(xiàn)一些系統(tǒng)信息。在“系統(tǒng)類(lèi)型”一行中,若顯示“x64-based
PC”,即為64位系統(tǒng);若顯示“X86-based PC”,則為32位系統(tǒng)。
Mac系統(tǒng)用戶建議直接使用64位的,因?yàn)镚o所支持的Mac OS X版本已經(jīng)不支持純32位處理器了。
Linux系統(tǒng)用戶可通過(guò)在Terminal中執(zhí)行命令arch(即uname
-m)來(lái)查看系統(tǒng)信息:
64位系統(tǒng)顯示
x86_64
32位系統(tǒng)顯示
i386
Mac 安裝
訪問(wèn)下載地址,32位系統(tǒng)下載go1.4.2.darwin-386-osx10.8.pkg,64位系統(tǒng)下載go1.4.2.darwin-amd64-osx10.8.pkg,雙擊下載文件,一路默認(rèn)安裝點(diǎn)擊下一步,這個(gè)時(shí)候go已經(jīng)安裝到你的系統(tǒng)中,默認(rèn)已經(jīng)在PATH中增加了相應(yīng)的~/go/bin,這個(gè)時(shí)候打開(kāi)終端,輸入go
看到類(lèi)似上面源碼安裝成功的圖片說(shuō)明已經(jīng)安裝成功
如果出現(xiàn)go的Usage信息,那么說(shuō)明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Linux 安裝
訪問(wèn)下載地址,32位系統(tǒng)下載go1.4.2.linux-386.tar.gz,64位系統(tǒng)下載go1.4.2.linux-amd64.tar.gz,
假定你想要安裝Go的目錄為 $GO_INSTALL_DIR,后面替換為相應(yīng)的目錄路徑。
解壓縮tar.gz包到安裝目錄下:tar zxvf go1.4.2.linux-amd64.tar.gz -C
$GO_INSTALL_DIR。
設(shè)置PATH,export PATH=$PATH:$GO_INSTALL_DIR/go/bin
然后執(zhí)行g(shù)o
圖1.2 Linux系統(tǒng)下安裝成功之后執(zhí)行g(shù)o顯示的信息
如果出現(xiàn)go的Usage信息,那么說(shuō)明go已經(jīng)安裝成功了;如果出現(xiàn)該命令不存在,那么可以檢查一下自己的PATH環(huán)境變中是否包含了go的安裝目錄。
Windows 安裝
訪問(wèn)Google Code 下載頁(yè),32
位請(qǐng)選擇名稱中包含 windows-386 的 msi 安裝包,64 位請(qǐng)選擇名稱中包含 windows-amd64 的。下載好后運(yùn)行,不要修改默認(rèn)安裝目錄
C:\Go\,若安裝到其他位置會(huì)導(dǎo)致不能執(zhí)行自己所編寫(xiě)的 Go 代碼。安裝完成后默認(rèn)會(huì)在環(huán)境變量 Path 后添加 Go 安裝目錄下的 bin 目錄
C:\Go\bin\,并添加環(huán)境變量 GOROOT,值為 Go 安裝根目錄 C:\Go\ 。
驗(yàn)證是否安裝成功
在運(yùn)行中輸入 cmd 打開(kāi)命令行工具,在提示符下輸入 go,檢查是否能看到 Usage 信息。輸入
cd %GOROOT%,看是否能進(jìn)入 Go 安裝目錄。若都成功,說(shuō)明安裝成功。
不能的話請(qǐng)檢查上述環(huán)境變量 Path 和 GOROOT 的值。若不存在請(qǐng)卸載后重新安裝,存在請(qǐng)重啟計(jì)算機(jī)后重試以上步驟。
第三方工具安裝
GVM
gvm是第三方開(kāi)發(fā)的Go多版本管理工具,類(lèi)似ruby里面的rvm工具。使用起來(lái)相當(dāng)?shù)姆奖悖惭bgvm使用如下命令:
bash (curl -s -S -L )
安裝完成后我們就可以安裝go了:
gvm install go1.4.2
gvm use go1.4.2
也可以使用下面的命令,省去每次調(diào)用gvm use的麻煩: gvm use go1.4.2 --default
執(zhí)行完上面的命令之后GOPATH、GOROOT等環(huán)境變量會(huì)自動(dòng)設(shè)置好,這樣就可以直接使用了。
apt-get
Ubuntu是目前使用最多的Linux桌面系統(tǒng),使用apt-get命令來(lái)管理軟件包,我們可以通過(guò)下面的命令來(lái)安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang-stable git-core mercurial
homebrew
homebrew是Mac系統(tǒng)下面目前使用最多的管理軟件的工具,目前已支持Go,可以通過(guò)命令直接安裝Go,為了以后方便,應(yīng)該把
git mercurial 也安裝上:
brew update brew upgrade
brew install go
brew install git
brew install mercurial
首先從網(wǎng)上下載go語(yǔ)言的編譯器,我在發(fā)布這篇經(jīng)驗(yàn)的時(shí)候go語(yǔ)言編譯器的版本已經(jīng)更新到了1.4版。根據(jù)你的系統(tǒng)平臺(tái)下載相應(yīng)的版本后,如果是壓縮文件,先解壓后雙擊運(yùn)行,不是壓縮文件,直接雙擊運(yùn)行就可以了,運(yùn)行后出現(xiàn)下面的界面,在下面界面上單擊“Next”。
跟所有的軟件安裝包一樣,go語(yǔ)言編譯安裝是也需要接受許可協(xié)議,在圖中紅圈的位置單擊選擇框,同意許可協(xié)議,單擊“Next”。
在這一步你要改變go的安裝目錄,默認(rèn)是安裝在C盤(pán)下,C盤(pán)下文件文件太多會(huì)影響系統(tǒng)性能,單擊紅圈所示的“change”按鈕會(huì)彈出安裝目錄選擇對(duì)話框。
在這個(gè)對(duì)話框中你選擇你要安裝go編譯器的目錄,選擇后會(huì)在紅圈所示的位置會(huì)顯示你所選擇的目錄,如果不是你預(yù)期的目錄,青重新選擇,然后單擊“OK”按鈕,對(duì)話框會(huì)回到第三步的對(duì)話框,但是目錄以及變成了你剛才選擇的目錄,這個(gè)對(duì)話框中單擊“Next”按鈕。
這一步開(kāi)始安裝go編譯器了,單擊“Install”按鈕,系統(tǒng)會(huì)自動(dòng)安裝go編譯器到你剛才選擇的目錄中。
如果不出意外,安裝程序開(kāi)始copy文件,并以進(jìn)度條的方式顯示當(dāng)前的角度,一般5分鐘左右就安裝完了。
黨出現(xiàn)下面的界面的時(shí)候,表明go編譯器已經(jīng)安裝完成了。單擊“Finish”按鈕結(jié)束安裝。
安裝完后要配置一些環(huán)境變量,首先要把go安裝目錄下的bin目錄放到Path環(huán)境變量中。
接著創(chuàng)建一個(gè)GOPATH環(huán)境變量,這個(gè)變量很重要,我自己寫(xiě)的代碼要放到這個(gè)變量中配置的目錄中,go編譯器才會(huì)找到并編譯
繼續(xù)在創(chuàng)建一個(gè)GOROOT變量,配合go編譯器安裝的目錄。
完成步驟后,打開(kāi)命令行g(shù)o verison 回車(chē),如果配置沒(méi)有錯(cuò)會(huì)出現(xiàn)go編譯器的版本信息,如下圖中紅圈所示。
golang中關(guān)于目錄與文件名等操作都在os這個(gè)包中,具體的創(chuàng)建目錄都是通過(guò)Mkdir和MkdirAll這2個(gè)函數(shù)來(lái)實(shí)現(xiàn)的,這兩個(gè)函數(shù)用法一致
os.Mkdir(dirName?string,?perm?FileMode)
dirName即要?jiǎng)?chuàng)建的目錄(文件夾路徑),可以是絕對(duì)路徑,也可以是相對(duì)路徑(相對(duì)于GOPATH)
perm表示創(chuàng)建的目錄的權(quán)限,如0777(讀r權(quán)限值為4,寫(xiě)權(quán)限w值為2,執(zhí)行權(quán)限x值為1)
如:我要在/data/program/goapp這個(gè)目錄下創(chuàng)建一個(gè)golang這個(gè)子目錄,示例如下:
package?main
import?(
"os"
"fmt"
)
func?main()?{
err?:=?os.Mkdir("/data/program/goapp/golang",?0666)
if?err?!=?nil?{
fmt.Println(err)
}
}
注:Mkdir和MkdirAll的區(qū)別
Mkdir創(chuàng)建目錄,它的父級(jí)目錄必須是存在的,不然創(chuàng)建會(huì)失敗
MkdirAll可以遞歸創(chuàng)建目錄,即只要根目錄存在即可,如下:
err?:=?os.MkdirAll("/data/program/goapp/golang/test/hello",?0766)
if?err?!=?nil?{
fmt.Println(err)
}
本例中:/data/program/goapp是已經(jīng)存在的目錄,而子目錄golang/test/hello是不存在,此時(shí)要使用MkdirAll來(lái)創(chuàng)建