Go env命令如何配置go环境变量

 更新时间:2023年05月30日 08:59:58   作者:Sherwei  
这篇文章主要为大家介绍了Go env如何配置go环境变量的命令详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

首先

这个环境变量并不是指Windows系统里的那个环境变量,而是go语言里可以让用户进行配置的一些变量。我们可以在cmd中使用go env命令来查看所有go环境变量的当前值:

下面,我们将对重要的一些环境变量进行配置:

GO111MODULE

go module是go官方自带的go依赖管理库,在1.13版本正式推荐使用。默认值为空,即go判断开不开启module的依据是看当前项目的根目录下有没有go.mod文件,当然我们也可手动更改为 on(全部开启)/off(全部不开启,不建议):

go env -w GO111MODULE=on 

GOPROXY

GOPROXY就是设置Golang的全局代理。在下载依赖包的时候,一般是访问github的仓库,国内的环境很容易被墙,所以最好设置一个速度快的代理。Go在此版本中GOPROXY的默认值为https://proxy.golang.org,国内是无法访问的。因此,这里推荐使用七牛云的代理https://goproxy.cn

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

GOPATH

在go 1.11版本之前,GOPATH主要用于指定我们的开发工作区(Workspace),是存放源代码、测试文件、库静态文件、可执行文件的目录。但是自从go 1.11引入module功能之后,GOPATH的作用就不大了。

目前在go module模式下,使用go get下载的外部依赖模块就位于$GOPATH/pkg/mod目录下。而因为GOPATH的默认值为C:\Users\%UserName%\go,所以下载的外部依赖包也就存放在C盘下面。

如果怕之后安装的依赖包太多占用C盘空间的话,我们可以更改GOPATH到其他位置,比如设置为go的安装目录下面:

go env -w GOPATH=D:\Golang1.19\gopath 

GOMODCACHE

即存储go下载的外部依赖模块文件的目录,默认值为$GOPATH/pkg/mod,因此我们一般只需要更改GOPATH的值即可,此环境变量的值就会自动做出相应的变动。当然你也可以设置为其他值。

GOCACHE

此目录存放go项目在构建过程中产生的缓存,默认值为C:\Users\%UserName%\AppData\Local\go-build,我们也可以更改为其他值,比如设置到GOPATH目录下:

go env -w GOCACHE=D:\Golang1.19\gopath\go-build-cache 

GOENV

此目录存放go环境变量的值的配置文件,默认值为C:\Users\%UserName%\AppData\Roaming\go\env,此值一般不需要更改,并且也不能通过go env的方式来更改此变量值。我们可以来到此目录下,发现有一个env文件,打开就可以看到文件的内容就是我们之前自定义过的go环境变量的值:

GOROOT

即go语言的安装目录,此值切记不要修改,保持默认值即可。如果乱改了,然后发现无法在控制台中使用go命令了,可以打开上一条中提到的env配置文件,删除自己自定义的值,即可恢复GOROOT为默认值。

其他相关命令

// 打印指定go环境变量的值 
go env $Variable_Name 
// 将指定go环境变量的值重设为默认值 
go env -u $Variable_Name 

关于系统环境变量

在go语言的安装过程中,安装程序会自动将$Go_Installation_Directory\bin加入到系统环境变量的Path里面,比如D:\Golang1.19\bin,这样就方便我们可以直接在CMD里面使用go的相关命令。除此之外,我们一般就不需要在系统环境变量里为go配置任何东西了,因为其他的一些go环境变量都可以通过go env来配置。

以上就是Go env命令如何配置go环境变量的详细内容,更多关于Go env环境变量配置的资料请关注脚本之家其它相关文章!

相关文章

  • Golang errgroup 设计及实现原理解析

    Golang errgroup 设计及实现原理解析

    这篇文章主要为大家介绍了Golang errgroup 设计及实现原理解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Golang中for循环的用法示例详解

    Golang中for循环的用法示例详解

    for循环就是让一段代码循环的执行,接下来通过本文给大家讲解Golang中for循环的用法,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 一文搞懂Go Exec 僵尸与孤儿进程

    一文搞懂Go Exec 僵尸与孤儿进程

    本文主要介绍了Go Exec 僵尸与孤儿进程,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 基于context.Context的Golang loader缓存请求放大问题解决

    基于context.Context的Golang loader缓存请求放大问题解决

    这篇文章主要为大家介绍了基于context.Context的Golang loader缓存请求放大解决方案,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • 使用client go实现自定义控制器的方法

    使用client go实现自定义控制器的方法

    本文我们来使用client-go实现一个自定义控制器,通过判断service的Annotations属性是否包含ingress/http,如果包含则创建ingress,如果不包含则不创建,对client go自定义控制器相关知识感兴趣的朋友一起看看吧
    2022-05-05
  • golang中结构体嵌套接口的实现

    golang中结构体嵌套接口的实现

    本文主要介绍了golang中结构体嵌套接口的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • 如何避免Go语言常见错误之意外的变量隐藏

    如何避免Go语言常见错误之意外的变量隐藏

    在Go语言中,变量隐藏(Variable Shadowing)是一个常见的错误来源,变量隐藏发生在一个内部作用域中声明的变量与外部作用域的变量同名时,这可能导致开发者无意中使用了错误的变量,造成难以追踪的bug,本文讲解一些关于变量隐藏的常见错误和如何避免它们的方法
    2024-01-01
  • golang协程池设计详解

    golang协程池设计详解

    这篇文章主要介绍了golang协程池设计详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Golang结构化日志包log/slog的使用详解

    Golang结构化日志包log/slog的使用详解

    官方提供的用于打印日志的包是标准库中的 log 包,该包虽然被广泛使用,但是缺点也很多,所以Go 1.21新增的 log/slog 完美解决了以上问题,下面我们就来看看log/slog包的使用吧
    2023-09-09
  • Go语言数据结构之二叉树必会知识点总结

    Go语言数据结构之二叉树必会知识点总结

    如果你是一个开发人员,或多或少对树型结构都有一定的认识。二叉树作为树的一种,是一种重要的数据结构,也是面试官经常考的东西。本文为大家总结了一些二叉树必会知识点,需要的可以参考一下
    2022-08-08

最新评论