2014-12-03 138 views
1

當我嘗試安裝工具去我越來越拒絕/usr/local/go/pkg/tool/linux_amd64/cover許可。我可以接受,因爲它是/usr/local/目錄,需要root訪問。 但我的第一個疑問是,當我將GOPATH設置爲某個其他位置時,它試圖在此位置進行安裝。權限被拒絕錯誤「go.tools」

$ go version 
go version go1.2.1 linux/amd64 

$ export GOPATH='/home/vagrant/repos/atlantis-router/vendor' 
$ go get code.google.com/p/go.tools/cmd/cover 
go install code.google.com/p/go.tools/cmd/cover: open /usr/local/go/pkg/tool/linux_amd64/cover: permission denied 

$ go env 
GOARCH="amd64" 
GOBIN="" 
GOCHAR="6" 
GOEXE="" 
GOHOSTARCH="amd64" 
GOHOSTOS="linux" 
GOOS="linux" 
GOPATH="/home/vagrant/repos/atlantis-router/vendor" 
GORACE="" 
GOROOT="/usr/local/go" 
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64" 
TERM="dumb" 
CC="gcc" 
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" 
CXX="g++" 
CGO_ENABLED="1" 

有人能指導我解決這個問題嗎?可能是什麼原因?

回答

1

Go試圖在$GOTOOLDIR而不是$GOPATH上安裝該工具,並且您可以看到它設置爲/usr/local/go/pkg/tool/linux_amd64。這裏同樣的事情發生在我身上。

只是使用sudo運行它,我想,因爲有在該目錄中的其他工具,我認爲GOTOOLDIR設置到別的地方可能會搞砸。

+0

'sudo'與'sudo'運行失敗,'sudo:go:command not found'失敗。我用「須藤去找code.google.com/p/go.tools/cmd/cover」 – ram 2014-12-03 13:46:23

+0

@ram在/ usr /本地/去/ bin'加上'以root的$ PATH – 2014-12-03 13:47:24

+0

我的$ PATH顯示我它被包含在$ PATH。 「$ echo $ PATH /home/vagrant/bin:/usr/local/sbin:....:/usr/local/go/bin」。與你所說的不同嗎? – ram 2014-12-03 13:50:14