diff --git a/1.1.md b/1.1.md index de7f81fa..11b7cd9d 100644 --- a/1.1.md +++ b/1.1.md @@ -1,47 +1,47 @@ # 1.1 Go 安装 -## 三种Go安装方式 -你能通过多种方式来安装Go,不同的人喜欢不同的安装方式,这里我们介绍目前常见的三种安装方式,下面是每种方式的大概介绍: +## Go的三种安装方式 +Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式: -- 源码安装:这是一种标准的软件安装方式,对于开发者来说,从源码安装将会是最熟悉的、特别对于经常使用unix类系统的用户。 -- Go标准包安装:Go提供了方便的安装包,支持window、linux、mac等系统,这种方式适合初学者,根据自己的系统位数选中下载好相应的安装包,一路next就可以轻松安装了。 -- 第三方工具安装:目前有很多方便的第三方软件包工具,例如ubuntu的apt-get、mac的homebrew等,这种方式的安装适合那些已经熟悉了相应系统的软件安装方式。 +- 从编译源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装是最方便而熟悉的。 +- 安装Go标准包:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。 +- 用软件包管理工具:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。 -最后,如果你想要在自己的同一个系统里面安装多个版本的Go,你可以在第三方工具里面详细参考gvm工具,这是目前这方面做的最好的工具,除非你知道怎么处理。 +最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具[GVM](https://github.com/moovweb/gvm),这是目前在这方面做得最好的工具,除非你知道怎么处理。 ### Go源码安装 -在Go的源代码中,有些部分是用C和汇编写的,因此你要想从源码安装,就必须安装C的编译工具。 +在Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。 在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。 -在类Unix系统中,需要安装gcc等工具,例如Ubuntu系统可通过这种方式安装编译工具:`sudo apt-get install gcc libc6-dev`。 +在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。 -在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc。 +在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。 -Go使用[Mercurial](http://mercurial.selenic.com/downloads/)进行版本管理,首先你必须安装了Mercurial,然后才行下载。假设你已经安装好Mercurial,执行如下代码: +Go使用[Mercurial][hg]进行版本管理,首先你必须安装了Mercurial,然后才能下载。假设你已经安装好Mercurial,执行如下代码: - 假设已经位于Go的安装目录 `$GO_INSTALL_DIR`下 +假设已经位于Go的安装目录 `$GO_INSTALL_DIR`下 - hg clone -u release https://code.google.com/p/go - cd go/src - ./all.bash + hg clone -u release https://code.google.com/p/go + cd go/src + ./all.bash -运行all.bash后出现"ALL TESTS PASSED"的字样的时候才算安装成功; +运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。 -上面写的是Unix风格的,Windows下安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的 gcc。 +上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行all.bat,调用的编译器是MinGW的gcc。 然后设置几个环境变量, export GOROOT=$HOME/go export GOBIN=$GOROOT/bin - export PATH=$PATH:$GOBIN + export PATH=$PATH:$GOBIN -看到如下图片说明已经安装成功 +看到如下图片即说明你已经安装成功 - ![](images/1.1.mac.png?raw=true) +![](images/1.1.mac.png?raw=true) + +如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。 - 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。 - ## Go标准包安装 @@ -49,7 +49,7 @@ Go使用[Mercurial](http://mercurial.selenic.com/downloads/)进行版本管理 我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。 -Windows系统用户请按Win+R运行cmd,输入`systeminfo`后回车,稍等片刻,会出现一堆系统信息。在“系统类型”一行中,若显示“x64-based PC”,即为64位系统;若显示“X86-based PC”,则为32位系统。 +Windows系统用户请按Win+R运行cmd,输入`systeminfo`后回车,稍等片刻,会出现一些系统信息。在“系统类型”一行中,若显示“x64-based PC”,即为64位系统;若显示“X86-based PC”,则为32位系统。 Mac系统用户建议直接使用64位的,因为Go所支持的Mac OS X版本已经不支持纯32位处理器了。 @@ -67,71 +67,71 @@ Linux系统用户可通过在Terminal中执行命令`uname -a`来查看系统信 ### Mac 安装 - 访问[下载地址][downlink],32位系统下载go1.0.2.darwin-386.pkg,64位系统下载go1.0.2.darwin-amd64.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的`~/go/bin`,这个时候打开终端,输入`go` +访问[下载地址][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) +![](images/1.1.mac.png?raw=true) - 如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。 +如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。 ### Linux 安装 - 访问[下载地址][downlink],32位系统下载go1.0.2.linux-386.tar.gz,64位系统下载go1.0.2.linux-amd64.tar.gz, - - 假定你想要安装Go的目录为 `$GO_INSTALL_DIR`,后面替换为相应的目录路径。 - 解压缩`tar.gz`包到安装目录下:`tar zxvf go1.0.2.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。 +访问[下载地址][downlink],32位系统下载go1.0.3.linux-386.tar.gz,64位系统下载go1.0.3.linux-amd64.tar.gz, - 设置PATH,`export PATH=$PATH:$GO_INSTALL_DIR/go/bin` +假定你想要安装Go的目录为 `$GO_INSTALL_DIR`,后面替换为相应的目录路径。 - 然后执行`go` +解压缩`tar.gz`包到安装目录下:`tar zxvf go1.0.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。 - 看到类似上面mac安装成功的图片说明已经安装成功 +设置PATH,`export PATH=$PATH:$GO_INSTALL_DIR/go/bin` - 如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。 - -### Windows 安装 - - 访问[下载地址][downlink],32位系统下载go1.0.2.windows-386.msi,64位系统下载go1.0.2.windows-amd64.msi。双击打开下载的文件,一路按照默认点击下一步,这个时候go已经安装到你的系统中,默认安装之后已经在你的系统环境变量中加入了`c:/go/bin`,这个时候打开cmd,输入`go` +然后执行`go` 看到类似上面mac安装成功的图片说明已经安装成功 - 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。 +如果出现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是使用第三方开发的能够管理多个版本工具,类似ruby里面的rvm工具。使用起来相当的方便,安装gvm使用如下命令: +gvm是第三方开发的Go多版本管理工具,类似ruby里面的rvm工具。使用起来相当的方便,安装gvm使用如下命令: bash < <(curl -s https://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer) -安装玩之后我们可以安装go了: +安装完成后我们就可以安装go了: gvm install go1.0.3 gvm use go1.0.3 - -执行上面的命令之后GOPATH、GOROOT等环境变量自动设置好了,就可以直接使用了。 + +执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。 ### apt-get -Ubuntu是目前使用最多的Linux桌面系统,使用`apt-get`命令来管理软件包,我们可以通过下面的命令来安装golang: +Ubuntu是目前使用最多的Linux桌面系统,使用`apt-get`命令来管理软件包,我们可以通过下面的命令来安装Go: sudo add-apt-repository ppa:gophers/go sudo apt-get update - sudo apt-get install golang-stable + sudo apt-get install golang-stable ### homebrew -homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已经支持golang,可以通过命令一键安装go: +homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已支持Go,可以通过命令直接安装Go: brew install go - - ## links - * [目录]() - * 上一节: [Go环境配置](<1.md>) - * 下一节: [GOPATH 与工作空间](<1.2.md>) + * [目录]() + * 上一节: [Go环境配置](<1.md>) + * 下一节: [GOPATH 与工作空间](<1.2.md>) ## LastModified - * $Id$ + * $Id$ [downlink]: http://code.google.com/p/go/downloads/list "Go安装包下载" +[hg]: http://mercurial.selenic.com/downloads/ "Mercurial下载" diff --git a/10.3.md b/10.3.md index ec667a56..0f9d8a70 100644 --- a/10.3.md +++ b/10.3.md @@ -1,6 +1,26 @@ # 10.3 国际化站点 前面小节介绍了如何处理本地化资源,即Locale一个相应的配置文件,那么如果处理多个的本地化资源呢?而对于一些我们经常用到的例如:简单的文本翻译、时间日期、数字等如果处理呢?本小节将一一解决这些问题。 + ## 管理多个本地包 +在我们开发一个应用的时候,首先我们应该知道这个Web应用要支持多少个语言,例如首先这个Web应用需要支持中文和英文,也许以后会支持其他语言,但是结构已经有了,所以扩展非常容易。那么我们设计如下:Locale文件夹在config/locales下,假设你要支持中文和英语,那么你需要在这个文件夹下放置en.json和zh.json。大概的内容如下所示: + + # zh.json + + zh: + submit: '提交' + create: '创建' + + #en.json + + en: + submit: 'Submit' + create: 'Create' + +然后调用go-i18n包里面注册一下这个目录,这样Go会加载config/locales目录下的locale文件: + + Tr:=i18n.NewLocale() + Tr.LoadPath("config/locales") + ## 自动加载本地包 diff --git a/images/3.1.dns_inquery.png b/images/3.1.dns_inquery.png index 8b529887..b95d952e 100644 Binary files a/images/3.1.dns_inquery.png and b/images/3.1.dns_inquery.png differ diff --git a/images/9.1.csrf.png b/images/9.1.csrf.png index 212871bb..54d3a434 100644 Binary files a/images/9.1.csrf.png and b/images/9.1.csrf.png differ