作爲運維人員,使用python語言足矣,理論上是無需瞭解golang的。不過最近發現一個新潮的監控系統都是基於golang進行開發的,如小米公司的Open-Falcon(github項目頁) 、stack exchange 公司的Bosun (github項目頁)。html
Go有多種安裝方式,你能夠選擇本身喜歡的。這裏咱們介紹三種最多見的安裝方式:python
Go源碼安裝:這是一種標準的軟件安裝方式。對於常用Unix類系統的用戶,尤爲對於開發者來講,從源碼安裝能夠本身定製。linux
Go標準包安裝:Go提供了方便的安裝包,支持Windows、Linux、Mac等系統。這種方式適合快速安裝,可根據本身的系統位數下載好相應的安裝包,一路next就能夠輕鬆安裝了。推薦這種方式git
第三方工具安裝:目前有不少方便的第三方軟件包工具,例如Ubuntu的apt-get、Mac的homebrew等。這種安裝方式適合那些熟悉相應系統的用戶。github
最後,若是你想在同一個系統中安裝多個版本的Go,你能夠參考第三方工具GVM,這是目前在這方面作得最好的工具,除非你知道怎麼處理。golang
在Go的源代碼中,有些部分是用Plan 9 C和AT&T彙編寫的,所以假如你要想從源碼安裝,就必須安裝C的編譯工具。web
在Mac系統中,只要你安裝了Xcode,就已經包含了相應的編譯工具。ubuntu
在類Unix系統中,須要安裝gcc等工具。例如Ubuntu系統可經過在終端中執行sudo apt-get install gcc libc6-dev來安裝編譯工具。windows
在Windows系統中,你須要安裝MinGW,而後經過MinGW安裝gcc,並設置相應的環境變量。centos
因爲本人平時主要涉及到linux平臺下的使用,因此這裏只以linux平臺爲例,不涉及mac 和win下的安裝。
從 官方頁面 、 國內鏡像 或github上下載 Go 的源碼包到你的計算機上,而後將解壓後的目錄go通1過命令移動到$GOROOT所指向的位置。
#本人設置$GOROOT爲/usr/local/goexport $GOROOT=/usr/local/gowget https://storage.googleapis.com/golang/go<VERSION>.src.tar.gztar zxv go<VERSION>.src.tar.gzmv go $GOROOT
sudo apt-get install bison ed gawk gcc libc6-dev make或yum gcc mak gawk
根據不一樣的發行版,自行選擇相應的編譯環境包安裝的方式。
cd $GOROOT/src./all.bash
export GOROOT=/usr/local/goexport PATH=$PATH:$GOROOT/bin或者使用以下:export PATH=$PATH:/usr/local/go/bin
根據須要能夠在.bashrc、.profile、/etc/profile等任一文件中配置相應的環境變量。
直接運行go命令,出現以下部分,表示環境已經安裝好。
[root@361way ~]# goGo is a tool for managing Go source code.Usage: go command [arguments]The commands are: build compile packages and dependencies clean remove object files env print Go environment information fix run go tool fix on packages fmt run gofmt on package sources generate generate Go files by processing source get download and install packages and dependencies install compile and install packages and dependencies list list packages run compile and run Go program test test packages tool run specified go tool version print Go version vet run go tool vet on packagesUse "go help [command]" for more information about a command.Additional help topics: c calling between Go and C filetype file types gopath GOPATH environment variable importpath import path syntax packages description of package lists testflag description of testing flags testfunc description of testing functionsUse "go help [topic]" for more information about that topic.
經過官方下的壓縮包下載來看,標準包裏包含源代碼,不過區別的是其解包後已經有相應的bin目錄存在,裏面有已經編譯好的golang二進制包。能夠直接使用上面第4部的操做配置環境變量後生效。
需使用第三方源epel ,以下:
yum -y install golang
sudo apt-get install python-software-propertiessudo add-apt-repository ppa:gophers/gosudo apt-get updatesudo apt-get install golang-stable git-core mercurial
brew update && brew upgradebrew install gobrew install gitbrew install mercurial
GVM是一個golang虛擬環境配置工具,其容許一臺機器上安裝多個golang版本,gvm是第三方開發的Go多版本管理工具,相似ruby裏面的rvm工具。使用起來至關的方便,安裝gvm使用以下命令:
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
安裝完成後咱們就能夠安裝go了:
gvm install go1.4.2gvm use go1.4.2
也可使用下面的命令,省去每次調用gvm use的麻煩:
gvm use go1.4.2 --default 執行完上面的命令以後GOPATH、GOROOT等環境變量會自動設置好,這樣就能夠直接使用了。
Go 開發環境依賴於一些操做系統環境變量,你最好在安裝 Go 之間就已經設置好他們。若是你使用的是 Windows 的話,你徹底不用進行手動設置,Go 將被默認安裝在目錄c:/go下。這裏列舉幾個最爲重要的環境變量:
$GOROOT 表示 Go 在你的電腦上的安裝位置,它的值通常都是$HOME/go,固然,你也能夠安裝在別的地方。
$GOARCH 表示目標機器的處理器架構,它的值能夠是 38六、amd64 或 arm。
$GOOS 表示目標機器的操做系統,它的值能夠是 darwin、freebsd、linux 或 windows。
$GOBIN 表示編譯器和連接器的安裝位置,默認是$GOROOT/bin,若是你使用的是 Go 1.0.3 及之後的版本,通常狀況下你能夠將它的值設置爲空,Go 將會使用前面提到的默認值。
目標機器是指你打算運行你的 Go 應用程序的機器。
Go 編譯器支持交叉編譯,也就是說你能夠在一臺機器上構建運行在具備不一樣操做系統和處理器架構上運行的應用程序,也就是說編寫源代碼的機器能夠和目標機器有徹底不一樣的特性(操做系統與處理器架構)。
爲了區分本地機器和目標機器,你可使用$GOHOSTOS和$GOHOSTARCH設置目標機器的參數,這兩個變量只有在進行交叉編譯的時候纔會用到,若是你不進行顯示設置,他們的值會和本地機器($GOOS和$GOARCH)同樣。
$GOPATH 默認採用和$GOROOT同樣的值,但從 Go 1.1 版本開始,你必須修改成其它路徑。它能夠包含多個包含 Go 語言源碼文件、包文件和可執行文件的路徑,而這些路徑下又必須分別包含三個規定的目錄:src、pkg和bin,這三個目錄分別用於存放源碼文件、包文件和可執行文件。
$GOARM 專門針對基於 arm 架構的處理器,它的值能夠是 5 或 6,默認爲 6。
$GOMAXPROCS 用於設置應用程序可以使用的處理器個數與核數,詳見第 14.1.3 節。
在接下來的章節中,咱們將會討論如何在 Linux、Mac OS X 和 Windows 上安裝 Go 語言。在 FreeBSD 上的安裝和
Linux 很是相似。開發團隊正在嘗試將 Go 語言移植到其它例如 OpenBSD、DragonFlyBSD、NetBSD、Plan
九、Haiku 和 Solaris 操做系統上,你能夠在這個頁面找到最近的動態:Go Porting Efforts。
主機環境使用示例:
export GOARCH=amd64export GOOS=linux
建立一個hello.go文件,內容以下:
package mainimport "fmt"func main() { fmt.Printf("hello, world\n")}
運行結果以下:
# go run hello.gohello, world