Linux go install始终使用GOROOT/bin而不是GOPATH

Linux go install始终使用GOROOT/bin而不是GOPATH,linux,go,debian,Linux,Go,Debian,我对go install命令有一个恼人的问题 每次我尝试在我的GOPATH的src目录中运行它时,由于某种原因,结果文件会在GOROOT/bin目录中创建 我在.bashrc中验证了我的环境变量,并运行了“go env”(见下文),但未发现任何问题: .bashrc export GOBIN=$HOME/dev/src/go/bin export GOPATH=$HOME/dev/go-dev export PATH=$PATH:$GOBIN:$GOPATH/bin go env GOARCH

我对
go install
命令有一个恼人的问题

每次我尝试在我的GOPATH
src
目录中运行它时,由于某种原因,结果文件会在GOROOT/bin目录中创建

我在.bashrc中验证了我的环境变量,并运行了“go env”(见下文),但未发现任何问题:

.bashrc

export GOBIN=$HOME/dev/src/go/bin
export GOPATH=$HOME/dev/go-dev
export PATH=$PATH:$GOBIN:$GOPATH/bin
go env

GOARCH="amd64"
GOBIN="/home/user/dev/src/go/bin"
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/user/dev/go-dev"
GORACE=""
GOROOT="/home/user/dev/src/go"
GOTOOLDIR="/home/user/dev/src/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
有一个类似的问题,除了我的环境中有GOPATH(我尝试了解决方案,但没有帮助)

当我尝试创建测试库并运行go install时,我在$GOPATH/pgk/linux_amd64中创建了一个正确的文件,但不在bin目录中

我的配置中缺少什么吗?

关于
go
工具:

如果目录是GOPATH中列出的目录

如果设置了GOBIN环境变量,则命令将安装到它命名的目录中,而不是DIR/bin

关于这一主题,在以下方面进行了讨论:

(a) 如果不设置GOBIN环境变量, 您可以在GOROOT/bin中使用Go编译器二进制文件 而您的二进制文件将进入GOPATH/bin。 (我个人喜欢这种二进制文件的分离。)

(b) 如果你设定了你的目标,那么 Go二进制文件和您的二进制文件都将崩溃


您的解决方案是不设置您的
GOBIN

在我的情况下,它不起作用,因为尽管GOBIN是$HOME/go/bin,但“权限被拒绝”。在我的情况下(Windows 8),
go安装
只会在
%GOROOT%\bin
中创建二进制文件,而不是
%GOPATH%\bin
。我只有
GOROOT
GOPATH
设置。我必须将
GOBIN
设置为
%GOPATH%\bin
才能获得
go-install
以在
%GOPATH%\bin
中创建二进制文件。