Skip to content
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

Go 环境安装 #74

Open
kevinyan815 opened this issue Mar 20, 2022 · 0 comments
Open

Go 环境安装 #74

kevinyan815 opened this issue Mar 20, 2022 · 0 comments

Comments

@kevinyan815
Copy link
Owner

kevinyan815 commented Mar 20, 2022

下面简单总结一下 Go 环境安装的步骤。

下载安装包

安装包去 Go 的官网下载地址 https://go.dev/dl/ 下载对应系统的包,22年3月 最新的发行版是 1.18

图片

页面上也有其他版本供选择下载。下载完成,打开安装器一路下一步即可:

图片

安装器会吧 Go 安装在 /user/local/go 目录

配置 go env

安装完成后,我们可以在命令行执行 go env 命令,看到默认的 go 环境变量:

GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE=""
GOENV=""
GOEXE=""
GOEXPERIMENT=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE=""
GOOS="darwin"
GOPATH="/usrs/local/go"
GOROOT="/usr/local/go"
....

接下来,我们要对几个配置项进行更改,让我们能更好地使用 Go。

  • GOROOT:Go 的安装目录,这个从1.11 还是 1.12 版本后就不需要我们再自己设置,这里提醒一下
  • GOPATH:理论上这个也可以不设置,默认是 /usr/local/go,不过我一般设置成我存放 Go 项目的目录,这样也能兼容一些没有使用 Go Modules 的老项目。那些老项目没有Go Modules 都是按照目录约定存放的,比如说导入路径是 example.com/infra/pay 的项目,那么它在本地的目录就是 $GOPATH/src/example.com/infa/pay 。 虽然1.12 有了 Go Modules 后,可以把Go 项目放在任何地方,但我还是习惯统一放在/Code/Go/src 里,所以在这里执行下面的命令把 GOPATH 设置成 /Users/xxx/Code/Go
go env -w GOPATH="/Users/xxx/Code/Go"

另外还有一点要注意,GOMODULECACHE 即Go Modules 下载在本地的仓库缓存是 $GOPATH/pkg/mod 目录,设置 GOPATH 后会自动随之改变,个人感觉比放在默认的/usr/local/go/pkg/mod 里让人更舒服些,可能是对自己电脑的洁癖导致的。

  • GOPROXY:Go Modules 的代理地址 ,默认是 https://goproxy.io 但是国内访问较慢,设置成国内代理。
go env -w GOPROXY="https://goproxy.cn,direct"
  • GOPRIVATE:这个初学者一般用不到,如果是引用公司内网的包,可以设置成内网代码仓库的域名,指示 Go Modules 不去代理上下载,而是去这里制定的站点找包。
go env -w GOPRIVATE="code.inner-company-xxx.com"

祖传艺能-- Hello World

安装完后,表演一下祖传艺能,输出个Hello World。

package main

import "fmt"

func main() {
	fmt.Println("Hello World!")
}

能正常执行后(我还没见过执行不了的情况)就可以开始我们的Go 搬砖之旅了:)。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant