问题背景
在teminal中输入go env命令,可以用来查看或修改Go语言的环境变量。
使用go env -w来设置环境变量的值,或者使用go env -u来取消设置
环境变量是系统级的键-值对,可以影响Go程序的运行和编译。
而在为Go源代码创建新目录时,会在go path的src目录之下创建,该目录是用来存放go项目的源代码的目录。go编译器也会在这个目录下查找导入的包。因此本文笔记整理了如何设置GOPATH环境变量来指定您的工作目录的位置并记录了相关思考。
笔记和研究整理
GOPATH 适合处理大量 Go语言源码、多个包组合而成的复杂工程。
在命令行中运行go env后,命令行将提示以下信息:
GOPATH='/Users/dengzixin/go'
在 Go 1.8 版本之前,GOPATH 环境变量默认是空的。
从 Go 1.8 版本开始,Go 开发包在安装完成后,
将 GOPATH 赋予了一个默认的目录,
在Linux和macOS上为
$HOME/users/go
在 GOPATH 指定的工作目录下,代码总是会保存在 $GOPATH/src 目录下。在工程经过 go build、go install 或 go get 等指令后,会将产生的二进制可执行文件放在 GOPATH/bin 目录下,生成的中间缓存文件会被保存在GOPATH/pkg 下。如果需要将整个源码添加到版本管理工具(Version Control System,VCS)中时,只需要添加 GOPATH/src 目录的源码即可。bin 和 pkg 目录的内容都可以由 src 目录生成。
以macos演示使用 GOPATH 的方法
输入go env检查当前的GOPATH
使用vim ~/.zshrc编辑.zshrc中的路径
i进入insert模式,嵌入以下命令
export GOPATH=目标路径:wq保存退出编辑状态
输入source ~/.zshrc
再次查看go env检查当前的GOPATH 已经改变。
可能出现GOPATH设置不生效的一些原因
- 配置的环境变量方式有误,是否编辑zsh或bash文件?
- 配置是否保存?
- 是否有其他管理权限配置了同一环境变量? 对于第三种问题,检查是否使用了gvm,可用以下命令删除之
chmod u+w -R ~/.gvm/
gvm implode
4.zsh: command not found: 此问题来自于zsh: command not found: 经常出现的原因是zsh和bash的默认环境变量配置文件不一致导致的。如果你在bash中安装了某个命令,但是在zsh中没有添加相应的路径,就会出现这个错误。解决方法是把bash中的环境变量复制到zsh中,或者重新安装命令