前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Go 新版1.18的安装配置以及对老项目的兼容

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

作者头像
KevinYan
发布2022-04-06 21:01:18
1.5K0
发布2022-04-06 21:01:18
举报
文章被收录于专栏:网管叨bi叨网管叨bi叨

最近 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 环境变量:

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

关于怎么让Go Modules使用私有依赖模块,还有一些配置,需要的老铁点我查看

祖传艺能-- Hello World

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

代码语言:javascript
复制
// hello.go
package main

import "fmt"

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

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网管叨bi叨 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载安装 Go
  • 配置 go env
  • 祖传艺能-- Hello World
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档