GOPATH环境变量用于指定这样一些目录:除$GOROOT之外的包含Go项目源代码和二进制文件的目录。go install和go 工具会用到GOPATH:作为编译后二进制的存放目的地和import包时的搜索路径。
GOPATH是一个路径列表,也就是可以同时指定多个目录。多个目录在Mac和Linux下通过”:”分割;Windows下通过”;”分割。注意,大部分情况下会是第一个路径优先,比如:查找包
对于有些情况,比如,在GOPATH所在的路径之外执行go install会怎么样,可以自己试验一下。
个人建议GOPATH中别设置多个路径,甚至不显示指定GOPATH。可参照《Go项目的目录结构》
有些地方建议在设置了GOPATH之后,将$GOPATH/bin加入PATH中,这样可以方便的运行go install好的二进制程序。然而,当存在GOPATH中存在多个路径时,这种写法只会将最后一个路径跟上bin。在mac或linux下可以通过这种方式解决: ${GOPATH//://bin:}/bin