我遇到了go install
命令的恼人问题。
每当我尝试在 GOPATH 的src
目录中运行时,由于某种原因,结果文件将在 GOROOT / bin 目录中创建。
我在.bashrc中验证了我的环境变量,并且还运行了“环境变量”。 (见下文)并且找不到任何问题:
的.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"
This post有一个类似的问题,除了我的环境中有GOPATH(我尝试了解决方案,但它没有帮助)。
当我尝试创建测试库using official GoLang site并运行 go install 时,我在$ GOPATH / pgk / linux_amd64中创建了一个正确的文件,但是没有在bin目录中创建
我的配置中遗漏了什么?
答案 0 :(得分:11)
Official documentation关于go
工具:
如果DIR是GOPATH ...
中列出的目录如果设置了GOBIN环境变量,命令将安装到它命名的目录而不是DIR / bin
在mailing list上讨论了这个主题,进一步解释了这个问题:
(a)如果你没有设置你的GOBIN env变量, 你得到GOROOT / bin中的Go编译器二进制文件 而你的二进制文件正在GOPATH / bin中。 (我个人喜欢这种二进制分离。)
(b)如果你将GOBIN设置为任何东西,那么 Go二进制文件和二进制文件都将转到GOBIN。
您的案例中的解决方案是不设置GOBIN
。