作为运维人员,使用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