Mac Go环境搭建

redis

Posted by Claire on March 7, 2022

MacOS 安装GO环境

一、下载安装包

  • 访问地址 golang.google.cn/dl/
  • 点击 Apple macOS 中的链接下载软件包至本地
  • 双击PKG包,即可进入安装向导
  • 点下一步直至最后,即可完成GO的安装

二、验证GO的版本

  • go version 命令,能够返回当前安装的GO的版本
go version go1.17.8 darwin/amd64

三、配置代理

由于下载的GO版本比较新,在配置【GO111MODULE】会与1.11之前的版本有区别。下面讨论两个参数【GO111MODULE】【GOPROXY】

3.1 GO111MODULE

在社区文章中看到如下解释:

  1. 2009年开始推出GO的时候,并没有包含包管理器的功能,使用go get(GO1.17中已过时)进行依赖的获取,获取的所有源存储在$ GOPATH / src 中 ;
  2. GO 1.11版本后引入GO模块,GO Modules不在使用GOPATH存储每个git checkout ,而是使用go.mod进行版本标记,并跟踪每个软件包的版本;
  3. 从此,『GOPATH 行为』与『Go Modules 行为』之间的交互已成为 Go 的最大难题之一
  4. GO111MODULE 是一个环境变量,可以在使用 go 更改 Go 导入包的方式时进行设置。GO111MODULE的默认值岁版本变迁不同
GO111MODULE with Go 1.11 and 1.12 自行配置
GO111MODULE with Go 1.13          默认值:auto
GO111MODULE with Go 1.14          默认值:auto
GO111MODULE with Go 1.16          默认值:on
GO111MODULE with Go 1.17          默认值:on auto与on相同

GO111MODULE=off,无模块支持,强制采用GOPATH模式来查找
GO111MODULE=on,模块支持,go命令行会使用modules,需要依赖go.mod的文件
GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
(1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
(2)当前文件在包含go.mod文件的目录下面。
  1. 手动设置方式:go env -w GO111MODULE=on

3.2 GOPROXY

  • 是GO的代理设置,拉取一些第三方库文件
  • 默认是:GOPROXY=”h ttps://proxy.golang.org,direct”
  • 国内代理:GOPROXY=https://goproxy.cn,direct
  • go env -w GOPROXY=https://goproxy.cn,direct

四、初始化项目

  • go mod init hello
  • 会出现 go.mod 文件,可以在GO111MODULE=on/auto的情况下进行依赖版本管理
  • 编写代码后,拉取依赖包的方式有【go get 包名】(新版本已经过时)/【go mod tidy】(此命令扫描所有代码的import命令,并进行依赖包的拉取)

五、编译运行代码

  • go build 生成编译后的对象(go mod init后跟的名字)
  • ./hello 即可执行

引用

Why is GO111MODULE everywhere, and everything about Go Modules (updated with Go 1.17)