关注

“脚本之家

”,与百万开发者在一起

来源丨网管叨bi叨(ID:kevin_tech)

已获得原公众号授权转载

最近 Go 支持范型的新版本 1.18 已经发布了,那怎么在我们的电脑上安装和配置 Go 1.18 呢,以及假如我有一些非常老的都没有用 Go Modules 管理依赖的项目升级到 1.18 后能兼容吗,今天给大家一一解惑。

本期的主要涉及的内容有:

  • Go 1.18 的安装和配置

  • GOPATH 的推荐设置(是的,虽说不必须,但是我建议你设置)

  • 还在用 go vendor 的老项目怎么在 Go 1.18 下正常运行

注意上面的几个内容并不是文章的目录结构,知识点都在内容里,大家搬好小板凳仔细听讲啦~!

安装演示我是在一台没安装过 Go 的电脑上操作的,偏初学者方向,读者里肯定大部分人都会,也有更 Geek 的安装方式,坐下来当小作文看就行啦~。顺便说一下,诶嘛姨破漏的麦克真香哈。

下载安装 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 的老项目。 虽然1.12 有了 Go Modules 后,可以把Go 项目放在任何地方,但我还是习惯统一放在/Code/Go/src 里,所以在这里执行下面的命令把 GOPATH 设置成 /Users/xxx/Code/Go。

    • go env -w GOPATH="/Users/xxx/Code/Go"

    • 那些老项目没有用 Go Modules 的话, 都是按照导入路径约定的目录存放的,比如说导入路径是 example.com/infra/pay 的项目,那么它在本地的目录就是 $GOPATH/src/example.com/infa/pay 。

另外还有一点要注意,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。

// hello.go

package main

import "fmt"

func main{

fmt.Println( "Hello World!")

}

命令行切到这个文件的目录,用 go run ./hello.go 能正常执行后(我还没见过执行不了的情况)就可以开始我们的Go 搬砖之旅了:)。

<END>

【轻薄款上架】🕚

终于!我找到程序员爱穿卫衣的原因了

我好像发现了一个Go的Bug?

学会这几招让 Go 程序自己监控自己