我在使用时遇到了一个非常令人沮丧的问题GOPATH,尽管已将其设置为,但.profile在调用时不会出现go env,并且似乎也不会影响go install目标位置。
GOPATH
.profile
go env
go install
我正在尝试用来go install安装软件包,并且收到此错误,该错误清楚地表明它正在尝试将其安装在/usr/lib/go,而不是的预期目录中/home/me/dev/go。
/usr/lib/go
/home/me/dev/go
$ go install github.com/songgao/colorgo go install github.com/songgao/go.pipeline: mkdir /usr/lib/go/pkg/linux_386/github.com: permission denied
go env 给出以下结果。
$ go env GOROOT="/usr/lib/go" GOBIN="" GOARCH="386" GOCHAR="8" GOOS="linux" GOEXE="" GOHOSTARCH="386" GOHOSTOS="linux" GOTOOLDIR="/usr/lib/go/pkg/tool/linux_386" GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread" CGO_ENABLED="1"
但这肯定 是 确定的。
$ echo $GOPATH /home/me/dev/go
更新: 我已经导出了GOPATH ~/.profile并获取了它,但是我仍然遇到相同的问题。
~/.profile
$ export GOPATH=/home/me/dev/go $ go env GOROOT="/usr/lib/go" GOBIN="" GOARCH="386" GOCHAR="8" GOOS="linux" GOEXE="" GOHOSTARCH="386" GOHOSTOS="linux" GOTOOLDIR="/usr/lib/go/pkg/tool/linux_386" GOGCCFLAGS="-g -O2 -fPIC -m32 -pthread" CGO_ENABLED="1"
再次更新: 自从我升级到go1.1beta2以来,此问题已不再存在。我不确定出什么问题了,因为GOPATH似乎设置正确,但现在看来一切正常。
GOPATH 和工作区
$ mkdir -p $HOME/dev/go/src $ mkdir -p $HOME/dev/go/bin
在$HOME/.profile:
$HOME/.profile
export GOPATH=$HOME/dev/go: export PATH=$PATH:$HOME/dev/go/bin
然后重新启动或注销并登录。
登录后,请先运行:
$ env | grep -i '^GO' GOPATH=/home/me/dev/go $ cat $HOME/.profile
你得到什么输出?