golang:环境变量GOPROXY和GO111MODULE设置
我们安装完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功能。这种情况下可以分为两种情形:
- 当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。
- 当前文件在包含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"
golang:环境变量GOPROXY和GO111MODULE设置相关推荐
- go语言:环境变量GOPROXY和GO111MODULE设置
前言 在上一篇文章go语言:go sdk安装及GOROOT和GOPATH设置 中介绍了golang的安装及环境变量的设置,GOROOT和GOPATH需要在windows中操作.当我们安装完golang ...
- Golang 环境变量须知
1.前言 无论你是使用 Windows.Linux 还是 Mac 操作系统来开发 Go 应用程序,在安装好 Go 安装语言开发工具之后,都必须配置好 Go 语言开发所要求的 环境变量,才算初步完成 G ...
- go基础库之环境变量的获取与设置以及如何使用默认值
golang 基础库之 go 获取命令行参数,介绍了环境变量的获取与设置以及如何使用默认值 环境变量的获取与设置以及如何使用默认值 Golang 版本 1.12.1 前言 环境变量作为配置选项可以显著 ...
- 获取Golang环境变量的三种方式
环境变量是应用软件参数配置的最佳方式,可以定义系统级,如开发.测试以及生成阶段.配置参数主要有数据库配置.第三方url等.因此环境变量对于开发和部署应用至关重要. 环境变量和配置文件 shell 编程 ...
- java里面什么时候环境变量_Java的环境变量什么时候需要设置?
1.在用MyEclipse开发的时不用配置环境变量,因为MyEclipse是个集成的IDE,之中指定了jre.环境变量配置与否和开发没有关系,环境变量是给成品用的. 2. 除非要在命令行下用javac ...
- Path环境变量的理解以及设置MinGW环境变量
配置path环境变量 在使用MinGW的时候,不小心把path变量的东西全部删掉了,结果只能自己重新设置path变量,首先要知道如何设置path变量. Path路径:用来指定可执行文件的搜索路径,也就 ...
- python需要配置环境变量吗_python需要设置哪些环境变量?我只知道一个PYTHONHOME指向安装目录。(python详细安装教程 path)...
怎么把Python文件夹添加进Path中 "我的电脑"点右键,"属性" "高级","环境变量","系统变量&q ...
- inno setup 环境变量 立即生效_CentOS7设置环境变量
@[toc] 一.环境变量的概念 1.环境变量的含义 程序(操作系统命令和应用程序)的执行都需要运行环境,这个环境是由多个环境变量组成的. 2.环境变量的分类 1)按生效的范围分类. 系统环境变量: ...
- 环境变量的作用及设置方法
Python小白一枚,记录自己的点点滴滴. 在学习中总是听到别人说什么全局变量,环境变量,局部变量之类的吧啦吧啦,听的一头雾水,自己百度了也是似懂非懂,这次详细的学习了一下,记录下来. 为什么要用环境 ...
最新文章
- 《Effect Java》学习笔记1———创建和销毁对象
- 【STM32】无线通信实验代码详解
- 数据结构---二叉搜索树
- 【系统】windows2003 至少有一个服务或驱动程序无法加载或错误
- 和平精英连接服务器未响应,和平精英触控失灵怎么回事 操作触屏有时候没反应介绍...
- centos 6.5卸载Mysql
- mysql关键字test_MySQL关键字Distinct的详细介绍
- java gui即时聊天工具
- 计算机课打字评课,三年级信息技术《键盘一家》评课稿
- Bunch转化为DataFrame的一般方法
- git stash暂存修改
- MATLAB读取excel表格中指定位置的数据
- 机场航班起降与协调管理系统飞机航班(含源码+论文+答辩PPT等)
- 易烊千玺领衔,潮流自拍手机华为nova5系列发布
- Uboot中的MIPI DSI clk分析
- 华为鸿蒙系统新界面,华为德国申请专利更新 自研操作系统鸿蒙界面曝光
- 每日分享190210
- 通过这一篇文章就了解机器学习的主要内容和核心思想(包括一些算法思想总结)!!!
- 用MATLAB进行灰度图像灰度值的处理
- 【一起学UniGUI】--UniGUI的窗体和模块(6)
热门文章
- 大学生计算机课程内容1000字,大学生计算机实习报告1000字【一】.doc
- teamcenter快速入门
- GOP/ 码流 /码率 / 比特率 / 帧速率 / 分辨率【转】
- python版飞机大战
- 在Vue+Element ui 项目中如何使用iconfont(阿里图标库)中的图标
- android ijk 播放器,[流媒体]ijkplayer 播放器,android平台使用说明
- 2022-11-16 每日打卡:单调栈解决最大矩形问题(一维直方图,二维最大红矩形)
- Harbor集成Clair镜像安全扫描并手动导入漏洞数据
- 三星正整合Bada与Tizen系统
- h1z1亚服服务器位置,h1z1欧服服务器在哪儿quest; | 手游网游页游攻略大全