Files
the-way-to-go_ZH_CN/eBook/02.3.md
Unknwon 4501794707 精校:5.5
增加极客学院格式支持
2015-07-18 22:37:48 +08:00

126 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2.3 在 Linux 上安装 Go
如果你能够自己下载并编译 Go 的源代码来说是非常有教育意义的,你可以根据这个页面找到安装指南和下载地址:[Download the Go distribution](http://golang.org/doc/install)。
我们接下来也会带你一步步的完成安装过程。
1. 设置 Go 环境变量
我们在 Linux 系统下一般通过文件 `$HOME/.bashrc` 配置自定义环境变量,根据不同的发行版也可能是文件 `$HOME/.profile`,然后使用 gedit 或 vi 来编辑文件内容。
export GOROOT=$HOME/go
为了确保相关文件在文件系统的任何地方都能被调用,你还需要添加以下内容:
export PATH=$PATH:$GOROOT/bin
在开发 Go 项目时,你还需要一个环境变量来保存你的工作目录。
export GOPATH=$HOME/Applications/Go
`$GOPATH` 可以包含多个工作目录,取决于你的个人情况。如果你设置了多个工作目录,那么当你在之后使用 `go get`(远程包安装命令)时远程包将会被安装在第一个目录下。
在完成这些设置后,你需要在终端输入指令 `source .bashrc` 以使这些环境变量生效。然后重启终端,输入 `go env``env` 来检查环境变量是否设置正确。
2. 安装 C 工具
Go 的工具链是用 C 语言编写的,因此在安装 Go 之前你需要先安装相关的 C 工具。如果你使用的是 Ubuntu 的话,你可以在终端输入以下指令( **译者注:由于网络环境的特殊性,你可能需要将每个工具分开安装** )。
sudo apt-get install bison ed gawk gcc libc6-dev make
你可以在其它发行版上使用 RPM 之类的工具。
3. 获取 Go 源代码
从 [官方页面](https://golang.org/dl/) 或 [国内镜像](http://www.golangtc.com/download) 下载 Go 的源码包到你的计算机上,然后将解压后的目录 `go` 通过命令移动到 `$GOROOT` 所指向的位置。
wget https://storage.googleapis.com/golang/go<VERSION>.src.tar.gz
tar zxv go<VERSION>.src.tar.gz
sudo mv go $GOROOT
4. 构建 Go
在终端使用以下指令来进行编译工作。
cd $GOROOT/src
./all.bash
在完成编译之后(通常在 1 分钟以内,如果你在 B 型树莓派上编译,一般需要 1 个小时),你会在终端看到如下信息被打印:
![](../images/2.3.allbash.png?raw=true)
图 2.3 完成编译后在终端打印的信息
**注意事项**
在测试 `net/http` 包时有一个测试会尝试连接 `google.com`,你可能会看到如下所示的一个无厘头的错误报告:
make[2]: Leaving directory `/localusr/go/src/pkg/net
如果你正在使用一个带有防火墙的机器,我建议你可以在编译过程中暂时关闭防火墙,以避免不必要的错误。
解决这个问题的另一个办法是通过设置环境变量 `$DISABLE_NET_TESTS` 来告诉构建工具忽略 `net/http` 包的相关测试:
export DISABLE_NET_TESTS=1
如果你完全不想运行包的测试,你可以直接运行 `./make.bash` 来进行单纯的构建过程。
5. 测试安装
使用你最喜爱的编辑器来输入以下内容,并保存为文件名 `test.go`。
示例 2.1 [hello_world1.go](examples/chapter_2/hello_world1.go)
```go
package main
func main() {
println("Hello", "world")
}
```
切换相关目录到下,然后执行指令 `go run hello_world1.go`,将会打印信息:`Hello, world`。
6. 验证安装版本
你可以通过在终端输入指令 `go version` 来打印 Go 的版本信息。
如果你想要通过 Go 代码在运行时检测版本,可以通过以下例子实现。
示例 2.2 [version.go](examples/chapter_2/version.go)
```go
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Printf("%s", runtime.Version())
}
```
这段代码将会输出 `go1.4.2` 或类似字符串。
7. 更新版本
你可以在 [发布历史](http://golang.org/doc/devel/release.html) 页面查看到最新的稳定版。
当前最新的稳定版 Go 1 系列于 2012 年 3 月 28 日发布。
Go 的源代码有以下三个分支:
- Go release最新稳定版实际开发最佳选择
- Go weekly包含最近更新的版本一般每周更新一次
- Go tip永远保持最新的版本相当于内测版
当你在使用不同的版本时,注意官方博客发布的信息,因为你所查阅的文档可能和你正在使用的版本不相符。
## 链接
- [目录](directory.md)
- 上一节:[Go 环境变量](02.2.md)
- 下一节:[在 Mac OS X 上安装 Go](02.4.md)