merge from upstream code

This commit is contained in:
yetist
2012-10-28 22:41:10 +08:00
4 changed files with 72 additions and 52 deletions

104
1.1.md
View File

@@ -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.pkg64位系统下载go1.0.2.darwin-amd64.pkg双击下载文件一路默认安装点击下一步这个时候go已经安装到你的系统中默认已经在PATH中增加了相应的`~/go/bin`,这个时候打开终端,输入`go`
访问[下载地址][downlink]32位系统下载go1.0.3.darwin-386.pkg64位系统下载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.gz64位系统下载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.gz64位系统下载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.msi64位系统下载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.msi64位系统下载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
* [目录](<preface.md>)
* 上一节: [Go环境配置](<1.md>)
* 下一节: [GOPATH 与工作空间](<1.2.md>)
* [目录](<preface.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下载"

20
10.3.md
View File

@@ -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")
## 自动加载本地包

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 78 KiB