2013-07-26 9 views
25

Jednak gdy już go ustawiłem. Mam nawet stworzył katalogi podrzędne, które nie wiem, czy necesary: ​​Mam błąd "nie można pobrać, nie ustawiono GOPATH", ale mam go ustawiony

$ echo $GOPATH && ls -r $GOPATH 
/home/cyrus/.go 
src pkg bin 

$ echo $GOROOT && ls $GOROOT 
/usr/local/go 
api AUTHORS bin CONTRIBUTORS doc favicon.ico include lib LICENSE misc PATENTS pkg README robots.txt src test VERSION 

Dlaczego nadal pojawia się błąd, gdy zrobić:

$ go get code.google.com/p/go-tour/gotour                            
package code.google.com/p/go-tour/gotour: cannot download, $GOPATH not set. For more details see: go help gopath 

Odpowiedz

27

Jeśli ustawisz zmienną takiego:

GOPATH=$HOME/go 

Nie zostanie wyeksportowany do żadnego podprocesu. Jest dostępny tylko dla tego procesu. Jeśli chcesz wyeksportować do podprocesów, użyj export:

export GOPATH 

Można również połączyć przypisanie i eksport:

katalog
export GOPATH=$HOME/go 
+5

Co więcej, możesz potwierdzić swoje ustawienia Go za pomocą 'go env' - jeśli' GOPATH' nie jest ustawiony/niepoprawny, to się pokaże. – elithrar

+7

Zrobiłem to wszystko i nadal nie działa, gdy używam 'go get golang.org/x/tools/cmd/godoc',' go env' nawet drukuje środowisko i wygląda idealnie. –

+0

Po prostu chcę zainstalować Gogs, ponieważ Gitlab nie działa na moim serwerze i jestem ciężko pracować przez wiele godzin z powodu błędów konfiguracyjnych .... niewiarygodne –

1

My $ GOROOT został stworzony z owner: root i group: wheel zamiast konieczności mi jak właściciel i administrator jako grupa. Domyślam się, że użyłem sudo, kiedy nie powinienem (lub jakieś narzędzie zrobiło to dla mnie). W związku z tym go get nie może zapisać pakietów w $ GOROOT, a zatem w błędach $GOPATH not set i permission denied.

Używając chown i chgrp w moim $ GOROOT (z -R, aby uzyskać podfoldery) działało polecenie "idź ...". W moim przypadku kod VS był teraz w stanie zainstalować składniki Go, które miałem.

+1

"Użyłem sudo, gdybym nie powinien" uratował mnie –

0

Po uruchomieniu przejdź do env, powinieneś być w stanie sprawdzić, czy twój GOPATH został ustawiony. W moim przypadku jednak ta komenda rozwiązuje ją, gdy uruchomiłem ją na moim terminalu.

export GOPATH=/usr/local/bin 
0

miałem konfigurację GOPATH i pokazywał poprawnie z komendą go env. Musiałem podać poprawne uprawnienia do katalogu go przy użyciu chmod i zainstalować gb przez go get github.com/constabulary/gb/....

0

Najpierw wykonaj polecenie "go env" i sprawdź ścieżkę GOROOT. Odpowiednio ustaw GOPATH. W moim przypadku musiałem ustawić GOPATH na/usr/lib/go. Wcześniej próbowałem go z/usr/share/go i/usr/bin/go, ale nie działało.

Powiązane problemy