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环境变量配置的资料请关注脚本之家其它相关文章!

相关文章

  • Go切片扩容机制详细说明和举例

    Go切片扩容机制详细说明和举例

    Go 语言中的切片是一种动态数组,它可以自动扩容和缩容以适应不同的数据量,这篇文章主要给大家介绍了关于Go切片扩容机制详细说明和举例的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • 数据竞争和内存重分配Golang slice并发不安全问题解决

    数据竞争和内存重分配Golang slice并发不安全问题解决

    这篇文章主要为大家介绍了数据竞争和内存重分配Golang slice并发不安全问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • Go语言的队列和堆栈实现方法

    Go语言的队列和堆栈实现方法

    这篇文章主要介绍了Go语言的队列和堆栈实现方法,涉及container/list包的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Go并发调用的超时处理的方法

    Go并发调用的超时处理的方法

    这篇文章主要介绍了Go并发调用的超时处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • 一文搞懂Go Exec 僵尸与孤儿进程

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

    本文主要介绍了Go Exec 僵尸与孤儿进程,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Golang语言使用像JAVA Spring注解一样的DI和AOP依赖注入实例

    Golang语言使用像JAVA Spring注解一样的DI和AOP依赖注入实例

    这篇文章主要为大家介绍了Golang语言使用像JAVA Spring注解一样的DI和AOP依赖注入实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • 在Golang中正确的修改HTTPRequest的Host的操作方法

    在Golang中正确的修改HTTPRequest的Host的操作方法

    我们工作中经常需要通过HTTP请求Server的服务,比如脚本批量请求接口跑数据,由于一些网关策略,部分Server会要求请求中Header里面附带Host参数,所以本文给大家介绍了如何在Golang中正确的修改HTTPRequest的Host,需要的朋友可以参考下
    2023-12-12
  • Golang的锁机制与使用技巧小结

    Golang的锁机制与使用技巧小结

    本文主要介绍了Golang的锁机制与使用技巧小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 详解go语言中type关键词的几种使用

    详解go语言中type关键词的几种使用

    这篇文章主要介绍了详解go语言中type的几种使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Golang工具库viper的使用教程

    Golang工具库viper的使用教程

    viper 是 go 项目中用来读取配置文件的库,支持读取 yaml、toml、json、hcl、env 等格式的配置文件,下面就来和大家聊聊它的具体使用吧
    2023-07-07

最新评论