Skip to content

Update incorrect and outdated content #1149

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Jan 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 65 additions & 58 deletions zh/01.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,63 +3,24 @@
## Go的三种安装方式
Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式:

- Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路 next 就可以轻松安装了。**推荐这种方式**
- 第三方工具安装:目前有很多方便的第三方软件包工具,例如 Ubuntu 的 apt-ge t和 wget、Mac 的 homebrew 等。这种安装方式适合那些熟悉相应系统的用户。
- Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源码安装可以自己定制。
- Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。**推荐这种方式**
- 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get和wget、Mac的homebrew等。这种安装方式适合那些熟悉相应系统的用户。

最后,如果你想在同一个系统中安装多个版本的Go,你可以参考第三方工具[GVM](https://github.com/moovweb/gvm),这是目前在这方面做得最好的工具,除非你知道怎么处理。

## Go源码安装
Go 1.5彻底移除C代码,Runtime、Compiler、Linker均由Go编写,实现自举。只需要安装了上一个版本,即可从源码安装。

在Go 1.5前,Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。

在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。

在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。

在Windows系统中,你需要安装MinGW,然后通过MinGW安装gcc,并设置相应的环境变量。

你可以直接去官网[下载源码](http://golang.org/dl/),找相应的`goVERSION.src.tar.gz`的文件下载,下载之后解压缩到`$HOME`目录,执行如下代码:

cd go/src
./all.bash

运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。

上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行`all.bat`,调用的编译器是MinGW的gcc。

如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到`.bashrc`或者`.zshrc`里面,

export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是写入文件的,记得执行`bash .bashrc`或者`bash .zshrc`使得设置立马生效。

如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。

当你设置完毕之后在命令行里面输入`go`,看到如下图片即说明你已经安装成功

![](images/1.1.mac.png?raw=true)

图1.1 源码安装之后执行Go命令的图

如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。

从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。
> 关于上面的GOPATH将在下面小节详细讲解

## Go标准包安装

Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:
Go 提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:

export GOROOT=$HOME/go
export GOPATH=$HOME/gopath
export GOPATH=$HOME/gopath (可选配置)
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

上面这些命令对于Mac和Unix用户来说最好是写入`.bashrc`或者`.zshrc`文件,对于windows用户来说当然是写入环境变量。

### 如何判断自己的操作系统是32位还是64位?
### 如何判断自己的操作系统是32位还是64位?(建议直接跳过, 现在操作系统一般都是 64位)

我们接下来的Go安装需要判断操作系统的位数,所以这小节我们先确定自己的系统类型。

Expand All @@ -70,28 +31,29 @@ Mac系统用户建议直接使用64位的,因为Go所支持的Mac OS X版本
Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查看系统信息:

64位系统显示

x86_64

32位系统显示

i386

### Mac 安装

访问[下载地址][downlink],32位系统下载go1.4.2.darwin-386-osx10.8.pkg(更新的版本已无32位下载),64位系统下载go1.8.3.darwin-amd64.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的`~/go/bin`,这个时候打开终端,输入`go`
访问[下载地址][downlink],64位系统下载 go1.14.7.darwin-amd64.pkg,双击下载文件,一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的`~/go/bin`, 这个时候打开终端,输入`go`
32位系统下载go1.4.2.darwin-386-osx10.8.pkg( 新的版本已无32位下载 )

看到类似上面源码安装成功的图片说明已经安装成功

如果出现go的Usage信息,那么说明go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了go的安装目录。

### Linux 安装

访问[下载地址][downlink],32位系统下载go1.8.3.linux-386.tar.gz,64位系统下载go1.8.3.linux-amd64.tar.gz,
访问[下载地址][downlink],64位系统下载go1.14.7.linux-amd64.tar.gz,32位系统下载go1.14.7.linux-386.tar.gz,

假定你想要安装Go的目录为 `$GO_INSTALL_DIR`,后面替换为相应的目录路径。
直接使用 `tar -C /usr/local -xzf go1.4.7.linux-amd64.tar.gz` 解压到 local 目录
设置PATH,`export PATH=$PATH:/usr/local/go/bin`

解压缩`tar.gz`包到安装目录下:`tar zxvf go1.8.3.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。
假定你想要安装Go的目录为 `$GO_INSTALL_DIR`,后面替换为相应的目录路径。
解压缩`tar.gz`包到安装目录下:`tar zxvf go1.14.7.linux-amd64.tar.gz -C $GO_INSTALL_DIR`。

设置PATH,`export PATH=$PATH:$GO_INSTALL_DIR/go/bin`

Expand All @@ -105,14 +67,15 @@ Linux系统用户可通过在Terminal中执行命令`arch`(即`uname -m`)来查

### Windows 安装 ###

访问[Golang 下载页][downlink],32 位请选择名称中包含 windows-386 的 msi 安装包,64 位请选择名称中包含 windows-amd64 的。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 `C:\Go\bin\`,并添加环境变量 GOROOT,值为 Go 安装根目录 `C:\Go\` 。
访问[Golang 下载页][downlink],64 位请选择名称中包含 windows-amd64 的, 32 位请选择名称中包含 windows-386 的 msi 安装包。下载好后运行,不要修改默认安装目录 C:\Go\,若安装到其他位置会导致不能执行自己所编写的 Go 代码。安装完成后默认会在环境变量 Path 后添加 Go 安装目录下的 bin 目录 `C:\Go\bin\`,并添加环境变量 GOROOT,值为 Go 安装根目录 `C:\Go\` 。

**验证是否安装成功**

在运行中输入 `cmd` 打开命令行工具,在提示符下输入 `go`,检查是否能看到 Usage 信息。输入 `cd %GOROOT%`,看是否能进入 Go 安装目录。若都成功,说明安装成功。

不能的话请检查上述环境变量 Path 和 GOROOT 的值。若不存在请卸载后重新安装,存在请重启计算机后重试以上步骤。


## 第三方工具安装

### GVM
Expand All @@ -125,11 +88,11 @@ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/bins
安装完成后我们就可以安装go了:
```sh

gvm install go1.8.3
gvm use go1.8.3
gvm install go1.14.7
gvm use go1.14.7
```
也可以使用下面的命令,省去每次调用gvm use的麻烦:
gvm use go1.8.3 --default
gvm use go1.14.7 --default

执行完上面的命令之后GOPATH、GOROOT等环境变量会自动设置好,这样就可以直接使用了。

Expand All @@ -145,8 +108,10 @@ sudo apt-get install golang-stable git-core mercurial
### wget
```sh

wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
sudo tar -xzf go1.8.3.linux-amd64.tar.gz -C /usr/local
wget https://storage.googleapis.com/golang/go1.14.7.linux-amd64.tar.gz
或 wget https://dl.google.com/go/go1.14.7.linux-amd64.tar.gz

sudo tar -xzf go1.14.7.linux-amd64.tar.gz -C /usr/local
```

配置环境变量:
Expand Down Expand Up @@ -189,12 +154,54 @@ homebrew是Mac系统下面目前使用最多的管理软件的工具,目前已
brew update && brew upgrade
brew install go
brew install git
brew install mercurial //可选安装
brew install mercurial // 可选安装
```

## Go源码安装
Go 1.5彻底移除 C 代码,Runtime、Compiler、Linker均由Go编写,实现自举。只需要安装了上一个版本,即可从源码安装。

在Go 1.5前,Go的源代码中,有些部分是用Plan 9 C和AT&T汇编写的,因此假如你要想从源码安装,就必须安装C的编译工具。

在Mac系统中,只要你安装了Xcode,就已经包含了相应的编译工具。

在类Unix系统中,需要安装gcc等工具。例如Ubuntu系统可通过在终端中执行`sudo apt-get install gcc libc6-dev`来安装编译工具。

在 Windows 系统中,你需要安装 MinGW,然后通过 MinGW 安装 gcc,并设置相应的环境变量。

你可以直接去官网[下载源码](http://golang.org/dl/),找相应的`goVERSION.src.tar.gz`的文件下载,下载之后解压缩到`$HOME`目录,执行如下代码:

cd go/src
./all.bash

运行all.bash后出现"ALL TESTS PASSED"字样时才算安装成功。

上面是Unix风格的命令,Windows下的安装方式类似,只不过是运行`all.bat`,调用的编译器是MinGW的gcc。

如果是Mac或者Unix用户需要设置几个环境变量,如果想重启之后也能生效的话把下面的命令写到`.bashrc`或者`.zshrc`里面,

export GOPATH=$HOME/gopath
export PATH=$PATH:$HOME/go/bin:$GOPATH/bin

如果你是写入文件的,记得执行`bash .bashrc`或者`bash .zshrc`使得设置立马生效。

如果是window系统,就需要设置环境变量,在path里面增加相应的go所在的目录,设置gopath变量。

当你设置完毕之后在命令行里面输入`go`,看到如下图片即说明你已经安装成功

![](images/1.1.mac.png?raw=true)

图1.1 源码安装之后执行Go命令的图

如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境变中是否包含了Go的安装目录。

从go 1.8开始,GOPATH 环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。
从 Go1.11 开始, Go 官方加入了 Go Module 支持.
> 关于上面的 GO Module 和 GOPATH 将在下面小节详细讲解


## links
* [目录](<preface.md>)
* 上一节: [Go环境配置](<01.0.md>)
* 下一节: [GOPATH 与工作空间](<01.2.md>)
* 下一节: [Go Module, GOPATH 与工作空间](<01.2.md>)

[downlink]:http://golang.org/dl/ "Go安装包下载"
79 changes: 76 additions & 3 deletions zh/01.2.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,80 @@
# 1.2 GOPATH与工作空间
# 1.2 Go Module, GOPATH 与工作空间

前面我们在安装Go的时候看到需要设置GOPATH变量,Go从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg
从 Go1.11 开始, Go 官方加入 Go Module 支持, Go1.12 成为默认支持; 从此告别源码必须放在 Gopath 中
以及 Gopath 对初学者造成的困扰.

从go 1.8开始,GOPATH环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。
## 使用 Go Module

由于众所周知的原因, 要顺利安装 Go Module 的包, 需要先设置代理:

公共模块代理:
```sh
export GOPROXY=https://goproxy.io // 也可以设置为 https://goproxy.cn 或者其他
```

私有模块代理:
```sh
export GOPRIVATE=git.xxx.com
```

初始化:
```
go mod init [module 名称]
```

检测和清理依赖:
```
go mod tidy
```

安装指定包:
```
go get -v github/com/go-ego/[email protected]
```

### 更新依赖
```
go get -u
```
更新指定包依赖:
```
go get -u github.com/go-ego/gse
```
指定版本:
```
go get -u github/com/go-ego/[email protected]
```

### Replace:

使用命令行:
```
go mod edit -replace github.com/go-ego/gse=/path/to/local/gse
go mod edit -replace github.com/go-ego/gse=github.com/vcaesar/gse
```
也可以直接修改模块文件:

```
replace github.com/go-ego/gse => github.com/vcaesar/gse
```

## GOMODULE 常用命令:

```
go mod init # 初始化 go.mod
go mod tidy # 更新依赖文件
go mod download # 下载依赖文件

go mod vendor # 将依赖转移至本地的 vendor 文件
go mod edit # 手动修改依赖文件
go mod graph # 打印依赖图
go mod verify # 校验依赖
```


前面我们在安装 Go 的时候看到需要设置 GOPATH 变量,Go 从1.1版本到1.7必须设置这个变量,而且不能和Go的安装目录一样,这个目录用来存放Go源码,Go的可运行文件,以及相应的编译之后的包文件。所以这个目录下面有三个子目录:src、bin、pkg

从go 1.8开始,GOPATH 环境变量现在有一个默认值,如果它没有被设置。 它在Unix上默认为$HOME/go,在Windows上默认为%USERPROFILE%/go。
## GOPATH设置
go 命令依赖一个重要的环境变量:$GOPATH

Expand All @@ -14,6 +86,7 @@
```sh
export GOPATH=/home/apple/mygo
```

为了方便,应该新建以上文件夹,并且上一行加入到 `.bashrc` 或者 `.zshrc` 或者自己的 `sh` 的配置文件中。

Windows 设置如下,新建一个环境变量名称叫做GOPATH:
Expand Down
2 changes: 1 addition & 1 deletion zh/01.3.md
Original file line number Diff line number Diff line change
Expand Up @@ -200,5 +200,5 @@ gofmt的参数介绍

## links
* [目录](<preface.md>)
* 上一节: [GOPATH与工作空间](<01.2.md>)
* 上一节: [Go Module, GOPATH与工作空间](<01.2.md>)
* 下一节: [Go开发工具](<01.4.md>)
Loading