2014-10-01 177 views
14

好吧,我已经看到这个问题弹出很多,但没有解决方案为我工作。我已经试过无数次来解决这个问题,但没有。以下是我所做的:go安装:没有安装目录GOPATH以外的目录

  • 已安装Go。

然后我添加的路径要求,我的.bash_profile

  • export PATH=$PATH:/usr/local/go/bin
  • export GOPATH=$HOME/go

我再设置正确的文件夹:

Folders

正如您所看到的,我还创建了一个名为的轮胎

main.go内容只不过是:

package main 

import "fmt" 

func main() { 
    fmt.Println("Hello, world!") 
} 

我会假设这是所有你需要把事情正常工作,但无论我做什么,我总是得到以下错误,当我尝试运行go install

go install: no install location for directory /Users/Daryl/go/src/tire outside GOPATH

我知道我可以只运行go install tire,但是这不是问题。我宁愿知道发生了什么事。

这里就是我得到的,当我运行go env

GOARCH="amd64" 
GOBIN="" 
GOCHAR="6" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="darwin" 
GOOS="darwin" 
GOPATH="/Users/daryl/go" 
GORACE="" 
GOROOT="/usr/local/go" 
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64" 
TERM="dumb" 
CC="clang" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fno-common" 
CXX="clang++" 
CGO_ENABLED="1" 

这是熟悉任何你?我错过了什么?任何帮助,将不胜感激。

+1

唯一突出给我的是'GOPATH'和Go认为你的源代码('daryl' vs'Daryl')的目录不匹配。对于区分大小写的文件系统,这些将是不同的路径,所以它可能不知道它们是等价的。 – 2014-10-01 06:04:45

+0

@JamesHenstridge我认为你可以钉上它。我用一个大写的帐户名创建了一个新的测试用户,它工作。虽然它对我来说没有任何意义,但为什么不行,我已经在GOPATH中指定了小写字母,那么为什么要使用它呢? – daryl 2014-10-01 06:21:30

+2

我没有OSX系统来测试,但我猜测它是下列之一:(1)目录确实是大写(运行'ls/Users'来检查),或者(2)'getcwd'正在返回目录名的大写版本。 – 2014-10-01 06:29:13

回答

1

问题出在James Henstridge commented,出于某种原因,我的用户目录名称大小写有问题。即使目录小写字母,我不得不使其大写。

这工作:

GOPATH=/Users/Daryl/go

这并不:

GOPATH=$HOME/go

然而,因为从我的iMac电脑移动到RMBP,我没有任何问题,设立围棋,所以,直到今天,我不确定发生了什么事情,但在这种情况下,大写字母固定了它。

47

当您运行go install Go寻找$GOBIN env可变路径。要么你需要设置你的$GOBIN$GOPATH/bin

$ export GOBIN=$GOPATH/bin 

和/或增加$GOBIN您的操作系统的搜索路径

$ export PATH=$PATH:$GOBIN 

要没有得到错误使用的命令。

+4

我认为你说'export GOBIN = $ GOPATH:bin'你应该说'export GOBIN = $ GOPATH/bin' – newlog 2015-01-10 13:10:30

+0

@Newlog yes thank you纠正! – PieOhPah 2015-01-12 21:54:02

+0

这也适合我!我只设置$ GOPATH而不是$ GOBIN,就像$ GOBIN被设置一样,一切正常。谢谢。 – Devy 2016-08-24 22:54:50