2014-10-01 133 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