golang:环境变量GOPROXY和GO111MODULE设置

2023-11-20

我们安装完golang后,我们在windows的cmd命令下就可以直接查看和使用go命令和环境变量了,同样的在linux下可以在控制台使用,如下图所示:

C:\Users\lijie1>go env
set GO111MODULE=
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\lijie1\AppData\Local\go-build
set GOENV=C:\Users\lijie1\AppData\Roaming\go\env
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=E:\go-project
set GOPRIVATE=
set GOPROXY=https://goproxy.cn,direct
set GOROOT=C:\Go\go
set GOSUMDB=off
set GOTMPDIR=
set GOTOOLDIR=C:\Go\go\pkg\tool\windows_amd64
set GCCGO=gccgo
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\lijie1\AppData\Local\Temp\go-build491479286=/tmp/go-build -gno-record-gcc-switches

我们也可以直接输入go,查看go支持的命令

GO111MODULE

GO111MODULE是 go modules 功能的开关,关于go modules本文不详述,这个涉及到go的一种很重要的管理机制,后面会有专门的文章来分析,我们可以简单的理解为,在没有go modules机制时,go工程中对于第三方功能包的管理非常复杂,也非常专业,这就导致程序员在进行开发的时候,对于第三方功能包的管理很不方便,所以才有了go modules机制。这个机制的开关是通过GO111MODULE环境变量来配置的。

GO111MODULE=off,无模块支持,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。

GO111MODULE=on,模块支持,go命令行会使用modules,而一点也不会去GOPATH目录下查找。

GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:

  1. 当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
  2. 当前文件在包含go.mod文件的目录下面。
注:
在使用go modules时,GOPATH是无意义的,不过它还是会把下载的依赖存储在$GOPATH/pkg/mod 中
也会把go install 的结果放在 $GOPATH/bin 中。

当modules 功能启用时,依赖包的存放位置变更为$GOPATH/pkg
允许同一个package多个版本并存,且多个项目可以共享缓存的module。

命令设置如下:

go env -w GO111MODULE=on

注:如果后面不需要使用,可以再将值设置为off。

GOPROXY

从字面意思就能看出,GOPROXY表示的是go的代理设置,之所以有这个环境变量,是因为go这种语言不像C语言,在C语言中,如果我们想要使用别人的第三方代码,一般有两种途径:

而在go语言中,类似于java,可以在编程时,引入第三方代码的库地址,比如git仓库,然后在编译的时候,IDE会自动的拉取第三方库文件到当前工程。
这样做虽然很方便,但是带来了一个问题:网速和限制
golang默认的GOPROXY是https://goproxy.io,这个是官方的设置,我们可以使用国内的代理,Windows下设置如下:,因为一些限制,我们不能很顺利的使用和下载这些仓库,这样就会导致下载缓慢或者失败,所以这个时候就需要一个代理来实现下载,这个代理就是中间商,可以跨过限制来访问。

golang默认的GOPROXY是https://goproxy.io,这个是官方的设置,我们可以使用国内的代理,Windows下设置如下:

go env -w GOPROXY=https://goproxy.cn,direct

注:其中 -w 表示 写 操作。

官方参考设置代理

具体细节,可以参考https://goproxy.cn/。

go module 代理设置 Go 1.13 及以上(推荐)
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
macOS 或 Linux
$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn

或者

$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile
Windows

打开你的 PowerShell 并执行

C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

golang:环境变量GOPROXY和GO111MODULE设置 的相关文章

  • Vue 和 jQuery 两者之间的区别是什么?

    1 jQuery 介绍 jQuery 曾经也是现在依然最流行的 web 前端 js 库 可是现在无论是国内还是国外他的使 用率正在渐渐被其他的 js 库所代替 随着浏览器厂商对 HTML5 规范统一遵循以及 ECMA6 在浏 览器端的实现

随机推荐

  • NGINX配置PHP网站

    NGINX配置PHP网站 NGINX配置PHP网站 源码安装NGINX 安装PHP 修改PHP参数 重启PHP 修改nginx配置文件 重启NGINX 测试 解决报错问题 NGINX配置PHP网站 源码安装NGINX 脚本一键安装 安装路径
  • springboot 整合EHcache 实现分页缓存

    一 简要概述 Cacheable 对当前的对象做缓存处理 Cacheable 作用 把方法的返回值添加到 Ehcache 中做缓存 Cacheable value xxx key xxxx Value 属性 指定一个 Ehcache 配置文
  • 小米造车?年轻人的第一辆电动车?

    素来有着价格屠夫称号的 小米 终于要对电动车出手了 事件简讯 昨天下午 据 晚点LatePost 爆料 小米 已确定造车 并视其为战略级决策 不过具体形式和路径还未确定 或许仍有变数 一位知情人士称 小米造车或将由小米集团创始人雷军亲自带队
  • 软件质量保障之代码走查

    目的 代码走查有几个目的 第一个是让新同学快速熟悉代码并了解系统 第二个是做咨询防控的事前检查 避免引发线上故障 第三个是通过一起讨论和审查 加强团队代码阅读和编写能力 让大家编写出优秀的代码 代码走查的优点非常多 但是最核心的还是提前发现
  • 模2除法——用非常直观的例子解释

    前言 差错检测中有名唤CRC之方法 但很多学习者难以理解其运行原理 特别是模2除法 故博主将其原理以示例方式记录下来 以便同道稍作借鉴 因博主水平有限 难免会出现错误 希各位能多多包涵和给予建议 注意 本博客假设各位已理解CRC原理但对模2
  • javascript几个知识点

    本文总结一下javascript几个比较重要的知识点 包括scope chain this 和函数的一些高级特性 scope chain scope chain是javascript函数调用里最核心的概念 尤其是要理解闭包的概念的话 必须先
  • Unity中按钮检测鼠标状态

    改方法主要是用于按钮检测鼠标的进入 滑出 点击 抬起 长按 长按停止 1 先将下面这个脚本挂载到需要检测鼠标状态的按钮上 using System Collections using System Collections Generic u
  • 时序预测

    时序预测 MATLAB实现趋势外推时间序列预测 含移动平均 指数平滑对比 目录 时序预测 MATLAB实现趋势外推时间序列预测 含移动平均 指数平滑对比 基本介绍 程序设计 学习总结 参考资料 基本介绍 MATLAB实现趋势外推时间序列预测
  • 《银行法律法规》一、经济金融基础知识——4、银行体系

    第四章 银行体系 第一节 银行起源和发展 考点1 商业银行产生与发展 概念 商业银行指能够吸收公众存款 发放贷款 办理结算等多种业务 以盈利为主要经营目标 经营货币的金融企业 在银行体系中占有重要地位 信用活动中起着主导作用 产生途径 现代
  • mount通过NFS挂载

    文章目录 mount通过NFS挂载 1 NFS介绍 2 安装 1 ubuntu服务器安装命令 2 客户端linux5 4安装指令 3 建立NFS共享文件目录 4 配置NFS共享配置文件 1 第一段的目录需要替换成自己的共享文件目录 2 第二
  • C++ 高性能Http服务器 - HelloWorld(一)

    本文使用 newobj 跨平台开发框架实现 Web 服务的搭建及业务处理 最终实现个人博客网站的Demo 其中使用Mysql Redis数据库 该框架实测可处理 6w 并发的请求并进行数据库处理 非常适合工作或学习中需要了解或应用C 开发w
  • SO_RCVTIMEO ,  MSG_WAITALL

    test SO RCVTIMEO and MSG WAITALL 1 首先两者都运用于阻塞的情景下 对nonblock的fd不起作用 2 SO RCVTIMEO socket选项 作为getsockopt setsockopt的参数 见下
  • 【PTA】二叉树题总结

    完全二叉搜索树 中序遍历 存位置 一个无重复的非负整数序列 必定对应唯一的一棵形状为完全二叉树的二叉搜索树 本题就要求你输出这棵树的层序遍历序列 输入格式 首先第一行给出一个正整数 N 1000 随后第二行给出 N 个不重复的非负整数 数字
  • Hadoop的java程序报错Exception in thread "main" java.io.FileNotFoundException: File does not exis

    找了半天发现是因为路径没有写全 正确路径应该是E abc txt 注意检查路径是不是写全了 尤其是后缀
  • SourceInsight

    1 开胃菜 初级应用 1 1 选择美丽的界面享受工作 虽然不能以貌取人 但似乎从来没有人责备以貌取软件的 SI的华丽界面 绝对符合现代花花世界的人的审美趣味 在SI中 我们可以轻松地把各种类型关键字 变量 标志符 函数 宏 注释等定义为不同
  • NBA球星莱昂纳德年纪以及成就

    莱昂约翰 德 莱昂纳德 LeBron James 现年35岁 是美国职业篮球运动员 曾三度获得NBA总冠军 六次获得常规赛最有价值球员奖 MVP 五次获得联盟最佳防守球员奖 和入选了十五次全明星阵容 是NBA史上最伟大的球员之一
  • lpv4dns服务器怎么修改,超简单方法让电脑网速飞起来,只需这么做:更改DNS服务器地址!...

    今天教大教一个技巧 让电脑浏览器打开网页速度更快 一般电脑默认是自动获取IP地址跟DNS服务器 我们手动更改为谷歌DNS 这样电脑浏览器打开网页的速度会快很多 1 鼠标右击任务栏本地连接图标 点击打开网络和共享中心 2 点击更改适配器设置
  • 计算机网络,用Excel画3种编码方式图(非归零编码,曼彻斯特编码,差分曼彻斯特编码)

    计算机网络 用Excel画3种编码方式图 非归零编码 曼彻斯特编码 差分曼彻斯特编码
  • Java及数据库事务

    数据库并发问题 1 脏读 读取未提交数据 A事务读取B事务尚未提交的数据 此时如果B事务发生错误并执行回滚操作 那么A事务读取到的数据就是脏数据 就好像原本的数据比较干净 纯粹 此时由于B事务更改了它 这个数据变得不再纯粹 这个时候A事务立
  • golang:环境变量GOPROXY和GO111MODULE设置

    我们安装完golang后 我们在windows的cmd命令下就可以直接查看和使用go命令和环境变量了 同样的在linux下可以在控制台使用 如下图所示 C Users lijie1 gt go env set GO111MODULE set