Go 新版1.18的安装配置以及对老项目的兼容

2022年4月3日 303点热度 0人点赞 0条评论
图片
 关注
脚本之家
,与百万开发者在一起
图片
来源丨网管叨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 程序自己监控自己

使用 golang gopacket 实现进程级流量监控

图片

73440Go 新版1.18的安装配置以及对老项目的兼容

这个人很懒,什么都没留下

文章评论