修复了minux的一些建议

This commit is contained in:
astaxie
2012-09-07 10:18:12 +08:00
parent 666a3bbd42
commit 5fcfdd039f
6 changed files with 81 additions and 49 deletions

73
1.1.md
View File

@@ -1,4 +1,21 @@
# 1.1 GO 安装
# 1.1 Go 安装
##如何判断机器是32还是64位系统
我们接下来的Go安装需要判断操作系统的位数所以这小节我们先确定我们自己的系统类型。
针对window系统右击我的电脑点击属性显示的信息里面我们可以判断出来XP系统如果是64位的那么会显示X64如果没有X64,那么默认都是32位。window7系统也是查看我的电脑的属性在系统类型里面会显示使用的系统类型64位操作系统或者32位操作系统。
Mac系统的用户建议直接使用64位的因为Go支持的Mac OS X已经不支持在纯32位处理器上跑了。
Linux系统通过命令`uname -a`可以查看系统的信息:
64位机器显示
前面有一段描述 x86_64 x86_64 x86_64 GNU/Linux
32位机器显示
前面有一段描述 i686 i686 i386 GNU/Linux
## Window 安装
@@ -20,35 +37,43 @@
出现go编译的信息那么说明go已经安装成功了如果出现该命令不存在那么可以检查一下自己的环境变量里面的PATH是不是包含了go安装目录
## linux安装
访问[下载地址][downlink]32位机器下载go1.0.2.linux-386.tar.gz64位机器下载go1.0.2.linux-amd64.tar.gz
解压缩`tar zxvf go1.0.2.linux-amd64.tar.gz`
解压文件到go移动go文件到home目录下`mv go ~/`
设置PATH`export PATH=$PATH:$HOME/go/bin`
## linux安装
访问[下载地址][downlink]32位机器下载go1.0.2.linux-386.tar.gz64位机器下载go1.0.2.linux-amd64.tar.gz
解压缩`tar zxvf go1.0.2.linux-amd64.tar.gz`
解压文件到go移动go文件到home目录下`mv go ~/`
设置PATH`export PATH=$PATH:$HOME/go/bin`
然后执行`go`
然后执行`go`
看到如下图片说明已经安装成功
![](images/1.1.linux.png?raw=true)
出现go编译的信息那么说明go已经安装成功了如果出现该命令不存在那么可以检查一下自己的环境变量里面的PATH是不是包含了go安装目录
出现go编译的信息那么说明go已经安装成功了如果出现该命令不存在那么可以检查一下自己的环境变量里面的PATH是不是包含了go安装目录
## 源码安装
首先你必须安装了hg工具然后执行如下的代码
假设当前在当前用户的home目录下
hg clone -u release https://code.google.com/p/go
cd go/src
./all.bash
然后设置PATH`export PATH=$PATH:$HOME/go/bin`
## 源码安装
Go的源代码有部分是用C写的所以你要源码安装必须第一步安装C的编译工具
Mac系统只要你安装了Xcode就已经包含了相应的编译工具。在Unix系统中需要安装gcc等工具例如Ubuntu系统通过这种方式安装编译工具`sudo apt-get install gcc libc6-dev`。在Window系统中你需要安装MinGW通过MinGW安装gcc。
首先你必须安装了hg工具然后执行如下的代码
假设当前在当前用户的home目录下
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。
然后设置PATH`export PATH=$PATH:$HOME/go/bin`
看到如下图片说明已经安装成功
![](images/1.1.mac.png?raw=true)
@@ -57,7 +82,7 @@
## links
* [目录](<preface.md>)
* 上一节: [GO环境配置](<1.md>)
* 上一节: [Go环境配置](<1.md>)
* 下一节: [GOPATH 与工作空间](<1.2.md>)
## LastModified

8
1.2.md
View File

@@ -5,7 +5,7 @@
在类似 Unix 环境大概这样设置:
GOPATH=/home/apple/mygo
export GOPATH=/home/apple/mygo
Windows 设置如下新建一个环境变量名称叫做GOPATH
@@ -56,7 +56,7 @@ GOPATH允许多个目录当有多个目录时请注意分隔符多个go
安装完之后,我们可以进入如下目录
cd $GOPATH/pkg/平台名/mymath.a
cd $GOPATH/pkg/$GOOS_$GOARCH/mymath.a
这个.a文件是应用包相当于一个函数库一样那么我们如何进行调用呢
@@ -68,7 +68,7 @@ GOPATH允许多个目录当有多个目录时请注意分隔符多个go
mkdir mathapp
vim main.go
// $GOPATH/src/mathapp/main.go 源码:
// `$GOPATH/src/mathapp/main.go`源码:
package main
@@ -150,7 +150,7 @@ go get本质上可以理解为首先第一步是通过源码工具clone代码到
## links
* [目录](<preface.md>)
* 上一节: [GO安装](<1.1.md>)
* 下一节: [GO shell命令](<1.3.md>)
* 下一节: [GO 命令](<1.3.md>)
## LastModified
* $Id$

19
1.3.md
View File

@@ -1,4 +1,4 @@
# 1.3 GO Shell 命令
# 1.3 GO 命令
##GO 命令
@@ -21,9 +21,16 @@
实际上package名在[go语言规范](https://golang.org/ref/spec)中指代码中“package”后使用的名称此名称可以与文件夹名不同。默认生成的可执行文件名是文件夹名。
go build会忽略目录下以”_“开头的go文件
go build会忽略目录下以”_“开头的go文件,还会忽略点开头的的go文件。
go build会选择性的编译系统名结尾的文件(linux、darwin、windows、freebsd),如果你编写的代码用了类似的名字结尾,那么很可能在别的系统下无法编译通过。
如果你的源代码里面针对不同系统需要不同的逻辑处理,那么你可以根据不同的系统来命名文件,例如有一个读取数组的文件在不同的系统可能有如下几个文件
array_linux.go
array_darwin.go
array_windows.go
array_freebsd.go
go build的时候会选择性的编译系统名结尾的文件(linux、darwin、windows、freebsd)例如linux系统下面编译只会选择array_linux.go文件其他系统命名后缀文件全部忽略。
##go clean
@@ -50,12 +57,12 @@
这个命令是用来动态获取远程代码包的目前支持的有BitBucket、GitHub、Google Code 、Launchpad ,这个命令在内部实际上分成了两步操作,第一步是下载源码包,第二步是`go install`下载源码包go工具会自动根据不同的域名调用不同的源码工具对应关系如下
BitBucket (Mercurial)
BitBucket (Mercurial Git)
GitHub (Git)
Google Code Project Hosting (Git, Mercurial, Subversion)
Launchpad (Bazaar)
所以为了`go get` 能正常工作,你必须确保安装了合适的 源码管理工具同时把这些命令加入你的path
所以为了`go get` 能正常工作,你必须确保安装了合适的 源码管理工具同时把这些命令加入你的path。其实`go get`支持自定义域名的功能,具体参见`go help remote`
##go install
@@ -92,7 +99,7 @@
go version 查看go当前的版本
go env 查看当前go的环境变量
go list 列出当前全部安装的package
go run 编译当前包并执行可执行文件
go run 编译并运行Go程序
## links
* [目录](<preface.md>)

4
1.4.md
View File

@@ -86,7 +86,7 @@ Vim是从vi发展出来的一个文本编辑器, 代码补完、编译及错误
4. 配置[Gocode](https://github.com/nsf/gocode/)
~ cd $GOPATH/src/github.com/nsf/gocode/vim
~ /update.bash
~ ./update.bash
~ gocode set propose-builtins true
propose-builtins true
~ gocode set lib-path "/home/border/gocode/pkg/linux_amd64"
@@ -235,7 +235,7 @@ Emacs传说中的神器她不仅仅是一个编辑器它是一个整合环
## links
* [目录](<preface.md>)
* 上一节: [Go Shell命令](<1.3.md>)
* 上一节: [Go 命令](<1.3.md>)
* 下一节: [总结](<1.5.md>)
## LastModified

12
1.md
View File

@@ -1,15 +1,15 @@
# 1 GO环境配置
## 目录
* 1. [GO安装](1.1.md)
* 1. [Go安装](1.1.md)
* 2. [GOPATH 与工作空间](1.2.md)
* 3. [GO shell命令](1.3.md)
* 3. [Go 命令](1.3.md)
* 4. [GO开发工具](1.4.md)
* 5. [小结](1.5.md)
欢迎来到GO的世界,让我们开始吧。
欢迎来到Go的世界,让我们开始吧。
为什么选择GO
为什么选择Go
- 拥有Python、php等开发快速的特性
- 拥有c语言的运行性能
@@ -17,11 +17,11 @@
- 跨平台,交叉编译
总之是一种C+Python动静结合的好语言
在本章中讲述GO的安装、以及如何配置项目信息。
在本章中讲述Go的安装、以及如何配置项目信息。
## links
* [目录](<preface.md>)
* 下一节: [GO安装](<1.1.md>)
* 下一节: [Go安装](<1.1.md>)
## LastModified
* $Id$

View File

@@ -1,15 +1,15 @@
* 1.[GO环境配置](1.md)
- 1.1. [GO安装](1.1.md)
* 1.[Go环境配置](1.md)
- 1.1. [Go安装](1.1.md)
- 1.2. [GOPATH 与工作空间](1.2.md)
- 1.3. [GO shell命令](1.3.md)
- 1.4. [GO开发工具](1.4.md)
- 1.3. [Go 命令](1.3.md)
- 1.4. [Go开发工具](1.4.md)
- 1.5. [小结](1.5.md)
* 2.[GO语言基础](2.md)
- 2.1. [你好GO](2.1.md)
- 2.2. [GO基础](2.2.md)
- 2.3. [流程和函数](2.3.md)
- 2.3. [流程和函数](2.3.md)
- 2.4. [struct](2.4.md)
- 2.5. [面向对象](2.5.md)
- 2.5. [面向对象](2.5.md)
- 2.6. [interface](2.6.md)
- 2.7. [并发](2.7.md)
- 2.8. [小结](2.8.md)
@@ -24,7 +24,7 @@
- 4.2 [验证表单的输入](4.2.md)
- 4.3 [预防跨站脚本](4.3.md)
- 4.4 [防止多次递交表单](4.4.md)
- 4.5 [处理文件上传](4.5.md)
- 4.5 [处理文件上传](4.5.md)
- 4.6 [小结](4.6.md)
* 5.访问数据库
- 5.1 database/sql接口