2014-11-06 6 views
5

instalacji niektórych pakietów nie iść z permission denied błędu, np .:osx - `iść GET` nie z odmowy zgody na niektórych opakowaniach to go

$ 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/darwin_amd64/cover: permission denied 

Kiedy próbowałem za pomocą sudo aby rozwiązać problem uprawnień, to nie powiódł się $GOPATH not set error:

$ sudo go get code.google.com/p/go.tools/cmd/cover 
Password: 
package code.google.com/p/go.tools/cmd/cover: cannot download, $GOPATH not set. For more details see: go help gopath 

Jak mogę to rozwiązać?

+1

Nie należy używać młotka sudo. Wskaż $ GOPATH do katalogu, który posiadasz. –

+0

Zobacz http://stackoverflow.com/questions/26291382/how-do-i-control-where-go-get-puts-things/26371095#26371095. –

+0

@ 3of3 poprawiono zarówno pytanie, jak i odpowiedź. Dzięki za pomoc! –

Odpowiedz

13
  1. godoc, go tool vet, go tool cover itd. Są specjalne go.tools polecenia, które są przeznaczone do zainstalowania na ścieżce systemowej domyślnie z przejść binarny. Jeśli te polecenia nie są dostępne, spróbuj zainstalować ponownie (lub znajdź go.tools w swoim systemie pakowania).

    Uwaga: Na OS X 10.8+, spróbuj zainstalować przejść używając Homebrew zamiast oficjalnego instalatora .pkg a twoje problemy powinny zniknąć (stan iść 1.4): brew install go

  2. Jeśli chcesz pobrać konkretny pkg na swoje $GOPATH (np. zależność od podmiotów trzecich), zamiast tego użyj go get -d <pkg>. Przykład:

    go get -d code.google.com/p/go.tools/cmd/cover 
    
  3. Ty nie powinna trzeba użyć młotka sudo w ogóle, jak Twój $GOPATH powinien wskazywać, że jesteś właścicielem katalogu, a tym samym nie permission: denied błędu w ogóle.

    Ale czy naprawdę wiesz, co robisz, i nadal chcesz sudo zainstalować coś, trzeba edytować sudoers file najpierw naprawić GOPATH korzenia za:

    $ sudo visudo 
    

    dodać następujący wiersz:

    Defaults env_keep += "GOPATH" 
    

    To sprawi, że kontekst sudo go get (root) podnieść swoją wartość $GOPATH.

+1

Po przeszukiwaniu 10 podobnych pytań z wieloma odpowiedziami jest to jedyna odpowiedź, która całkowicie pokryła wszystko! Dziękuję Ci! –

2

Po prostu wpadłem na to, ponieważ zainstalowałem go z MacPorts. Odpowiedź Vojtecha Vitka wskazała mi właściwy kierunek, ale myślałem, że pójdę dalej i opublikuję dosłowne rozwiązanie, którego potrzebowałem.

Uruchom sudo port install go-tools. Nie wiem, dlaczego godoc et al nie są dołączone do pakietu base go, ale cokolwiek.

Powiązane problemy