# 1.1 Go 安装

## Go的三种安装方式
Go有多种安装方式，你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式：

- 从编译源码安装：这是一种标准的软件安装方式。对于经常使用Unix类系统的用户，尤其对于开发者来说，从源码安装是最方便而熟悉的。
- 安装Go标准包：Go提供了方便的安装包，支持Windows、Linux、Mac等系统。这种方式适合初学者，可根据自己的系统位数下载好相应的安装包，一路next就可以轻松安装了。
- 用软件包管理工具：目前有很多方便的第三方软件包工具，例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。

最后，如果你想在同一个系统中安装多个版本的Go，你可以参考第三方工具[GVM](https://github.com/moovweb/gvm)，这是目前在这方面做得最好的工具，除非你知道怎么处理。

### Go源码安装
在Go的源代码中，有些部分是用Plan 9 C和AT&T汇编写的，因此假如你要想从源码安装，就必须安装C的编译工具。

在Mac系统中，只要你安装了Xcode，就已经包含了相应的编译工具。

在类Unix系统中，需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。

在Windows系统中，你需要安装MinGW，然后通过MinGW安装gcc，并设置相应的环境变量。

Go使用[Mercurial][hg]进行版本管理，首先你必须安装了Mercurial，然后才能下载。假设你已经安装好Mercurial，执行如下代码：

假设已经位于Go的安装目录 `$GO_INSTALL_DIR`下

	hg clone -u release https://code.google.com/p/go
	cd go/src
	./all.bash

运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。

上面是Unix风格的命令，Windows下的安装方式类似，只不过是运行all.bat，调用的编译器是MinGW的gcc。

然后设置几个环境变量，

	export GOROOT=$HOME/go
	export GOBIN=$GOROOT/bin
	export PATH=$PATH:$GOBIN

看到如下图片即说明你已经安装成功

![](images/1.1.mac.png?raw=true)

如果出现Go的Usage信息，那么说明Go已经安装成功了；如果出现该命令不存在，那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。


## Go标准包安装

Go提供了每个平台打好包的一键安装，这些包默认会安装到如下目录：/usr/local/go (Windows系统：c:\Go)，当然你可以改变他们的安装位置，但是改变之后你必须在你的环境变量中设置如下信息：

	export GOROOT=$HOME/go  
	export PATH=$PATH:$GOROOT/bin

### 如何判断自己的操作系统是32位还是64位？

我们接下来的Go安装需要判断操作系统的位数，所以这小节我们先确定自己的系统类型。

Windows系统用户请按Win+R运行cmd，输入`systeminfo`后回车，稍等片刻，会出现一些系统信息。在“系统类型”一行中，若显示“x64-based PC”，即为64位系统；若显示“X86-based PC”，则为32位系统。

Mac系统用户建议直接使用64位的，因为Go所支持的Mac OS X版本已经不支持纯32位处理器了。

Linux系统用户可通过在Terminal中执行命令`uname -a`来查看系统信息：

64位系统显示

	<一段描述> x86_64 x86_64 x86_64 GNU/Linux
	//有些机器显示如下，例如ubuntu10.04
	x86_64 GNU/Linux

32位系统显示

	<一段描述> i686 i686 i386 GNU/Linux

### Mac 安装

访问[下载地址][downlink]，32位系统下载go1.0.3.darwin-386.pkg，64位系统下载go1.0.3.darwin-amd64.pkg，双击下载文件，一路默认安装点击下一步，这个时候go已经安装到你的系统中，默认已经在PATH中增加了相应的`~/go/bin`,这个时候打开终端，输入`go`

看到如下图片说明已经安装成功

![](images/1.1.mac.png?raw=true)

如果出现go的Usage信息，那么说明go已经安装成功了；如果出现该命令不存在，那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。

### Linux 安装

访问[下载地址][downlink]，32位系统下载go1.0.3.linux-386.tar.gz，64位系统下载go1.0.3.linux-amd64.tar.gz，

假定你想要安装Go的目录为 `$GO_INSTALL_DIR`，后面替换为相应的目录路径。

解压缩`tar.gz`包到安装目录下：`tar zxvf go1.0.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。

设置PATH，`export PATH=$PATH:$GO_INSTALL_DIR/go/bin`

然后执行`go`

看到类似上面mac安装成功的图片说明已经安装成功

如果出现go的Usage信息，那么说明go已经安装成功了；如果出现该命令不存在，那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。

### Windows 安装

访问[下载地址][downlink]，32位系统下载go1.0.3.windows-386.msi，64位系统下载go1.0.3.windows-amd64.msi。双击打开下载的文件，一路按照默认点击下一步，这个时候go已经安装到你的系统中，默认安装之后已经在你的系统环境变量中加入了`c:/go/bin`，这个时候打开cmd，输入`go`

看到类似上面mac安装成功的图片说明已经安装成功

如果出现Go的Usage信息，那么说明Go已经安装成功了；如果出现该命令不存在，那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。

## 第三方工具安装
### GVM
gvm是第三方开发的Go多版本管理工具，类似ruby里面的rvm工具。使用起来相当的方便，安装gvm使用如下命令：

	bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)

安装完成后我们就可以安装go了：

	gvm install go1.0.3
	gvm use go1.0.3

执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好，这样就可以直接使用了。

### apt-get
Ubuntu是目前使用最多的Linux桌面系统，使用`apt-get`命令来管理软件包，我们可以通过下面的命令来安装Go：

	sudo add-apt-repository ppa:gophers/go
	sudo apt-get update
	sudo apt-get install golang-stable

### homebrew
homebrew是Mac系统下面目前使用最多的管理软件的工具，目前已支持Go，可以通过命令直接安装Go：

	brew install go


## links
   * [目录](<preface.md>)
   * 上一节: [Go环境配置](<1.md>)
   * 下一节: [GOPATH 与工作空间](<1.2.md>)

[downlink]: http://code.google.com/p/go/downloads/list "Go安装包下载"
[hg]: http://mercurial.selenic.com/downloads/ "Mercurial下载"
