猿问

在非默认目录中安装Go软件包

我在Go中创建了一个API,在其中我通过安装了两个软件包,go get并创建了四个供我自己使用的软件包。一切似乎都正常。但是,我想移动软件包的位置,以便将所有内容放在Git目录中。


从我所读的内容中,应该就像将GOPATH变量更改为新目录并go get再次运行以进行测试一样容易。这样对吗?如果是,我做错什么了吗?下面是我运行时在终端(Mac OS X)中显示的内容go env。如果还有其他有用的信息,请告诉我。谢谢。


GOARCH="amd64"

GOBIN=""

GOCHAR="6"

GOEXE=""

GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common"

GOHOSTARCH="amd64"

GOHOSTOS="darwin"

GOOS="darwin"

GOPATH="/Applications/MAMP/htdocs/git/cbi/api"

GOROOT="/usr/local/go"

GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"

CGO_ENABLED="1"

我应该澄清一下,默认情况下,我GOPATH是一个空字符串。我尝试将其更新到上面的目录,因为这是我希望安装新软件包的位置,并且还可以让Go查找在其中创建了放置位置的所有软件包。


我GOPATH通过运行来设置变量:


export GOPATH="/Applications/MAMP/htdocs/git/cbi/api"

完成此操作后,我可以看到在键入时已设置了变量go env。但是,如果我退出Terminal,然后再将其打开并go env再次运行,GOPATH则不会设置该变量。有没有储蓄的理由吗?我应该设置其他方式而不是导出吗?


慕尼黑8549860
浏览 192回答 3
3回答

智慧大石

如果未设置GOPATH变量,则不建议将软件包安装在GOROOT中。如果要将 GOPATH 设置为“/Applications/MAMP/htdocs/git/cbi/api”,请确保将代码目录放在“/Applications/MAMP/htdocs/git/cbi/api/src/”中。但是,如果我退出Terminal,然后再将其打开,然后再次运行“ go env”,则不会设置GOPATH变量。就像jeremy所说的那样,您应该在bash配置文件中设置环境变量。在mac os中,将其添加到$ HOME / .profile:中 export GOPATH=/Applications/MAMP/htdocs/git/cbi/api。顺便说一句,您可以指定多个GOPATH,例如,export GOPATH=/path/to/gopath1:/path/to/gopath2
随时随地看视频慕课网APP

相关分类

Go
我要回答