Próbuję zrobić go get
:
go get github.com/go-sql-driver/mysql
i kończy się niepowodzeniem z następującym błędem:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
kiedy zrobię a go env
, lista wartości Go jest pokazana jak poniżej:
ubuntu@ip-xxx-x-xx-x:~$ go env
GOARCH="amd64"
GOBIN=""
GOCHAR="6"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH=""
GORACE=""
GOROOT="/usr/lib/go"
GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64"
CC="gcc"
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
CGO_ENABLED="1"
oczywiście GOPATH nie jest ustawiony, jak i gdzie go ustawić?
Widzę wiele wątków, które wspominają o tym błędzie, ale żaden nie zawiera odpowiedzi na moje pytanie, który plik należy edytować, aby podać wartość dla tej ścieżki?
GOPATH
dla Ciebie: patrz moja odpowiedź poniżej .Odpowiedzi:
Nowy sposób:
Sprawdź tę odpowiedź.
Stara droga:
Wystarczy dodać następujące wiersze do ~ / .bashrc, a to się utrzyma. Możesz jednak użyć innych ścieżek, które lubisz jako GOPATH zamiast $ HOME / przejdź do mojej próbki.
źródło
/usr/share/go
na moim Ubuntu 13.10.$ source ~/.bashrc
;)Ubuntu 14.04
Dodatkowo możesz dodać ten ciąg do pliku
źródło
GOPATH powinien być ustawiony na nowo utworzony pusty katalog. Jest to „obszar roboczy”, w którym pobierane są pakiety itd. Używam ~ / .go.
Na przykład:
źródło: http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
źródło
New Way: Go Modules
Od wersji 1.11 nie musisz już używać GOPATH. Po prostu przejdź do katalogu projektu i zrób to raz:
Old Way: GOPATH
Jeśli nalegasz na współpracę z GOPATH, zwróć uwagę na to:
Z dokumentacji :
źródło
Jeśli na przykład jest to Ubuntu, po zainstalowaniu pakietów:
Wystarczy dodać następujące wiersze do ~ / .bashrc (Twojego użytkownika)
źródło
Nie ma potrzeby edytowania żadnego pliku, możemy po prostu użyć powyższego polecenia, aby bezpośrednio edytować zmienne środowiskowe Go.
źródło
Wpisz ten kod w terminalu.
Uwaga : Spowoduje to zresetowanie przy każdym nowym oknie terminala lub ponownym uruchomieniu systemu.
Aby zachować trwałość, wklej poniższy kod do pliku
.zshrc
lub.bashrc
pliku zgodnie z powłoką. Te pliki w twoim katalogu domowym . Będzie jak poniżej.źródło
Będziesz także potrzebował GOPATH później. Dodaj to do
~/.bashrc
.źródło
Jeśli skonfigurujesz coś, co wymaga modyfikacji zmiennych środowiskowych, np. Java, Go itp., Będzie to bardzo znane.
Zakładam, że jako ścieżkę Go masz następującą strukturę katalogów:
sudo nano /etc/environment
PATH=...
i przejdź do końca i dodaj dwukropek:
po ostatniej ścieżce, a następnie wklej w całościgo path
np/home/user/gocode
i gotowe. To powinno sprawić, że będzie trwały przez system.
źródło
Właśnie to działa dla mnie na Ubuntu 15.10 za pomocą
fish shell
:Następnie musiałem zmienić uprawnienia do
go
folderu (ustawiono go na root)źródło
ścieżka go może być wszędzie tam, gdzie chcesz, po prostu utwórz katalog i ustaw globalną zmienną ścieżki w nazwie GOPATH dla swojego środowiska.
źródło
W Go 1.8 (Q2 2017) nie będziesz musiał edytować żadnego pliku, jeśli zaakceptujesz
GOPATH
wartość domyślną (ustawioną dla Ciebie)Możesz zobaczyć komentarze do numeru 17262 i powiązany głos na Twitterze :
źródło
Moje środowisko go wyglądało podobnie do twojego.
Rozwiązałem to, ustawiając GOPATH na / usr / lib / go . Wypróbuj to.
źródło
GOPATH to zmienna środowiskowa do lokalizacji miejsca pracy. GOROOT jest zmienną środowiskową do katalogu instalacyjnego. Chociaż GOROOT i GOPATH są ustawiane automatycznie (jeśli nie wystąpiłby błąd) w czasie instalacji, aby określić je ręcznie, możesz wykonać poniższy proces. Ponadto, aby uzyskać więcej informacji , odwiedź stronę wiki GO .
Lepiej ustawić GOPATH na katalog w katalogu domowym, np. $ HOME / go,% USERPROFILE% \ go (Windows).
Na swoim typie terminala
w otwartym dokumencie na terminalu naciśnij i i dodaj następującą ścieżkę
naciśnij ESC i wpisz : x . Na koniec powinieneś ponownie uruchomić ( zamknąć i otworzyć ) terminal lub wylogować się i zalogować ponownie.
UWAGA Nie ustawiaj GOROOT i GOPATH w tym samym katalogu, w przeciwnym razie pojawi się ostrzeżenie.
źródło
I możesz sprawdzić przez $ go env
źródło
(Ubuntu)
Jeśli nie ustawisz GOPATH, zostanie użyta wartość domyślna.
Musisz dodać $ GOPATH / bin do PATH, aby wykonać dowolny plik binarny zainstalowany w $ GOPATH / bin, lub musisz wpisać $ GOPATH / bin / the-command. Dodaj to do swojego ~ / .bash_profile
Bieżące polecenie GOPATH:
Zmiana polecenia GOPATH:
źródło
To była najbardziej denerwująca sprawa. W nadziei na oszczędność czasu.
JEŚLI go został zainstalowany jako użytkownik root. Użytkownik root pliku tekstowego bash_profile twojego systemu ~ / .bash_profile musi mieć $ GOROOT przypisany do katalogu instalacyjnego go, a $ GOPATH musi być przypisany do katalogu go / src.
upewnij się, że ścieżka do pliku binarnego znajduje się na twojej ścieżce na .bash_profile
ŚCIEŻKA = $ ŚCIEŻKA: $ HOME / bin: / usr / local / bin: / usr / local / go / bin
ŚCIEŻKA może być tak długim ciągiem, jakim musi być .. aby dodać nowe elementy, oddzielając je tylko dwukropkiem:
zamknij edytor vi i zapisz profil bash (: wq oznacza zapis i zamknij)
Musisz wylogować się z terminala i zalogować się ponownie, aby profil ponownie się zainicjował .. lub możesz po prostu uruchomić go za pomocą eksportu.
Możesz zweryfikować go env:
Tak!
Teraz możesz sudo i go będzie mógł pobierać i tworzyć katalogi wewnątrz go / src i możesz przejść do tego, co chciałeś zrobić.
przykład
Teraz napotkasz inny problem ... być może nie masz zainstalowanego gita ... to kolejna przygoda .. :)
źródło
go get
, aby kłaść wszędzie bliskoGOROOT
.Na moim komputerze Fedora 20 dodałem następujące wiersze do mojego ~ / .bashrc:
źródło
GOROOT
. (Chyba, że jesteś w bardzo małej grupie ludzi, którzy używają binarnej dystrybucji Go, ale instalują ją gdzieś niestandardowo.)Jeszcze inne rozwiązanie: eksportuj wszystkie
GO*
zmienne środowiskowe zgo env
.bashrc:
źródło
eval
jest zwykle złym pomysłem i przesadą w tej sytuacji IMHOGOPATH
tylko eksportuEdytuj swój,
~/.bash_profile
aby dodać następujący wiersz:Zapisz i zamknij edytor. Następnie zdobądź swój
~/.bash_profile
Uwaga: Ustaw ścieżkę GOBIN, aby generowała plik binarny po uruchomieniu instalacji go
źródło
Ten skrypt pomoże ci zmienić Gopatha. https://github.com/buffonomics/goswitch
źródło
Jak napisano w oficjalnych instrukcjach :
Na przykład, jeśli kodujesz w Jetbrains Webstorm (używając wtyczki Go ), możesz ustawić
GOPATH
jako/Users/<user>/WebstormProjects
.Mówiąc prościej, ustaw go w dowolnym miejscu, w którym mają się znajdować projekty Go.
źródło
Możesz użyć rozwiązania „eksportowania” dokładnie tak, jak sugerowali inni faceci. Chciałbym zapewnić Ci inne rozwiązanie dla stałej wygody: możesz użyć dowolnej ścieżki jako GOPATH podczas uruchamiania poleceń Go.
Po pierwsze, musisz pobrać małe narzędzie o nazwie
gost
: https://github.com/byte16/gost/releases . Jeśli korzystasz z Ubuntu, możesz pobrać wersję linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Następnie musisz uruchomić poniższe polecenia, aby go rozpakować:
Otrzymasz plik wykonywalny
gost
. Możesz go przenieść w/usr/local/bin
celu wygodnego użycia:Uruchom poniższe polecenie, aby dodać ścieżkę, której chcesz użyć jako GOPATH, do utrzymywanego obszaru ścieżki
gost
. Wymagane jest nadanie ścieżce nazwy, której będziesz używać później.Uruchom dowolne polecenie Go w formacie:
Na przykład, chcesz uruchomić
go get github.com/go-sql-driver/mysql
z/home/foobar/bar
jak GOPATH, zrób to jak poniżej:Pomoże ci to ustawić GOPATH i uruchomić polecenie. Ale pamiętaj, że dodałeś ścieżkę do
gost
„s pathspace . Jeśli znajdujesz się na jakimkolwiek poziomie podkatalogów/home/foobar/bar
, możesz nawet uruchomić polecenie poniżej, które zrobiłoby to samo w skrócie:gost
to proste narzędzie Go, które może pomóc w zarządzaniu GOPATH i uruchamianiu poleceń Go. Aby uzyskać więcej informacji na temat używania go do uruchamiania innych poleceń Go, wystarczy uruchomićgost help goCmdName
. Na przykład, aby uzyskać więcej informacjiinstall
, wystarczy wpisać słowa poniżej w:Możesz również znaleźć więcej informacji w README projektu: https://github.com/byte16/gost/blob/master/README.md
źródło
Musisz zaktualizować ŚCIEŻKĘ na podstawie używanego terminala (bash lub zsh).
~/.bashrc
Lub~/.zshrc
w edytorzeexport GOPATH=$HOME/go:/$HOME/projects/go
Tutaj możesz dodać jedną lub więcej ścieżek oddzielonych średnikiem
:
z różnych lokalizacji projektów GO w systemie doGOPATH
zmiennej środowiskowej, tj/path/1:path/2:path/3
.W moim przypadku dodałem 2 ścieżki, jak pokazano powyżej, jedną z katalogu głównego,
$HOME/go
a drugą z katalogu projektów:/$HOME/projects/go
źródło