~/src/go-statsd-client> echo $GOPATH /Users/me/gopath ~/src/go-statsd-client> echo $GOROOT /usr/local/Cellar/go/1.1.1\ ~/src/go-statsd-client> go install go install: no install location for directory /Users/me/src/go-statsd-client outside GOPATH
无论项目采用何种结构,这总是以相同的消息失败。Go build 完美运行。
这是我的 go env
go env
GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="darwin" GOOS="darwin" GOPATH="/Users/me/gopath" GORACE="" GOROOT="/usr/local/Cellar/go/1.1.1" GOTOOLDIR="/usr/local/Cellar/go/1.1.1/pkg/tool/darwin_amd64" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-common" CGO_ENABLED="1"
这是在 Mac OSX Mountain Lion 上安装的,go 是用自制软件安装的。
当您不向 提供参数时go install,它默认尝试在当前目录中安装包。错误消息告诉您它不能这样做,因为当前目录不是您的$GOPATH.
go install
$GOPATH
您可以:
export GOPATH=$HOME
mv ~/src/go-statsd-client /User/me/gopath
在任一之后,进入go-statsd-client目录并键入go install将起作用,因此可以go install go-statsd-client从文件系统中的任何位置键入。构建的二进制文件将进入$GOPATH/bin.
go-statsd-client
go install go-statsd-client
$GOPATH/bin
作为一个不相关的建议,您可能希望使用域名来命名您的包,以避免名称冲突(例如github.com/you/go-statsd-client,如果这是您保存源代码的地方)。
github.com/you/go-statsd-client
对于任何 OS X 用户和未来的我,您还需要设置GOBIN以避免在安装和go get
GOBIN
go get
mkdir bin export GOBIN=$GOPATH/bin