Go Web 编程

安装和设置Go

安装Go

编写Go代码之前,我们需要先设置好相关的环境。首先要做的就是安装Go,这一工作可以通过下载并安装官方提供的二进制发行版来完成,在需要的情况下,我们也可以通过源码来安装Go。在撰写本书的时候,Go的最新版本为1.6。

Go官方为release 8或以上版本的FreeBSD、2.6.23或以上版本的Linux、SnowLeopard或以上版本的Mac OS X、XP或以上版本的Windows都提供了支持32位(386)和64位(amd64)x86处理器架构的二进制发行版。除此之外,Go还为FreeBSD和Linux提供了支持ARM架构的二进制发行版。

以上提到的所有发行版的安装包都可以在https://golang.org/dl/下载。请根据所使用的平台选择并下载相应的安装包,然后按照本文接下来介绍的方法进行安装。需要注意的是,尽管Go语言本身并不依赖任何源代码版本控制系统,但是诸如go get等工具却需要用到源代码版本控制系统,因此为了能够更方便地使用Go语言进行开发,我们建议在安装Go的同时也安装相应的源代码版本控制系统。

关于源代码版本控制系统的下载和安装方法可以在以下这些网站上找到:

Linux和FreeBSD

要在Linux或FreeBSD上安装Go, 首先需要下载go<版本>.<操作系统>- <架构>.tar.gz文件。 比如, 当前64位架构的Linux安装包的名字就为go1.6.3.linux-amd64.tar.gz

压缩包下载好了之后, 将它解压到/usr/local目录中, 并将目录/usr/local/go/bin添加到PATH环境变量当中。 添加环境变量的工作可以通过将以下代码行添加到/etc/profile文件或$HOME/.profile文件中来完成:

export PATH=$PATH:/usr/local/go/bin

Windows

使用Windows操作系统的读者可以通过下载MSI安装包或者zip压缩包来安装Go。 使用MSI安装包进行安装相对来说更容易一些, 只需要运行MSI安装包然后按照指示进行安装就可以了。 在默认情况下, 安装包会将Go安装到c:\Go文件夹里面, 并将c:\Go\bin文件夹添加到PATH环境变量当中。

使用zip压缩包进行安装也是非常容易的, 只需要将压缩包解压到一个文件夹里面(如c:\Go), 然后将这个文件夹中的bin子文件夹添加到PATH环境变量里面就可以了。

Mac OS X

使用Mac OS X操作系统的读者可以通过下载相应的PKG安装包来安装Go。 安装包会将相应的Go发行版安装到/usr/loca/go目录里面, 并将目录/usr/local/go/bin添加到PATH环境变量里面。 在安装完成之后, 需要重启终端, 或者在终端里面执行以下命令:

$ source ~/.profile

除了使用PKG安装包进行安装之外,我们还可以通过执行以下命令来使用Homebrew安装Go:

$ brew install go

设置Go

在安装Go之后, 我们还需要对它进行一些设置。 Go语言的开发工具能够基于公开托管的代码项目进行协作, 它们既适用于开源项目, 也适用于其他项目。

Go代码一般都是在工作空间(workspace)里面进行开发的,工作空间指的是包含以下3个子目录的目录:

  • src目录,用于包含Go源码文件,这些源码文件会被组织成一个个包(package),src目录中的每个子目录都表示一个包;
  • pkg目录,用于包含包对象(package object);
  • bin目录,用于包含可执行的二进制文件。

图A-1展示了一个工作空间的例子。

../_images/a1.png

图A-1 Go工作空间的目录结构

工作空间的工作方式非常简单。当编译Go代码的时候,编译器会创建相应的包(库)以及二进制可执行文件,并将这些包和可执行文件放到相应的目录里面。如上图A-1所示,我们在src目录中创建了一个first_webapp目录,并在这个目录里面放置了一个webapp.go文件,以此来构建一个简单的Web应用。当我们编译这个Web应用的源码时,编译器会将生成的二进制可执行文件放置到这个工作空间的bin目录里面。

设置工作空间的任务可以通过设置GOPATH环境变量来完成。你可以使用除Go安装位置之外的其他任何目录来作为自己的工作空间。举个例子,假如你想要将Linux、FreeBSD或者Mac OS X中的$HOME/go目录设置为工作空间,那么你只需要在终端中执行以下命令即可:

$ mkdir $HOME/go
$ export GOPATH=$HOME/go

你也可以通过将以下代码行添加到自己的~/.profile文件或者~/.bashrc文件里面来让设置一直有效:

export GOPATH=$HOME/go

为了方便,我们可以在设置工作空间的同时,通过执行以下命令来将工作空间中的bin目录添加到PATH环境变量当中:

$ export PATH=$PATH:$GOPATH/bin

这样一来,我们就可以直接执行编译后的Go程序了。