Zainstaluj go z naparem i uruchom gotour


101

Byłem następującego po http://tour.golang.org/ aż dotarłem do trzeciego kroku o tym mówi, że można zainstalować gotour w systemie. Następnie zainstalowałem język go z brew przez:

brew install hg
brew install go

Następnie ściągnąłem gotour przez:

go get code.google.com/p/go-tour/gotour

Kiedy próbowałem uruchomić gotour, nie rozpoznałem polecenia:

$ gotour
-bash: gotour: command not found

i

$ go gotour

i

$ ./gotour

Więc próbowałem zobaczyć ścieżkę przejścia i była pusta,

echo $GOPATH

więc zdefiniowałem GOPATH:

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

Teraz mogę biegać po drodze

./gotour

Ale jestem niepewny co do mojego środowiska ucieczki… czyż nie miałem być w stanie uciec

go run gotour

lub po prostu wpisując (jak opisano na tej stronie internetowej http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Chciałbym wiedzieć, czy robię wszystko we właściwy sposób, ponieważ jestem nowy w języku programowania go.


2
Twój GOPATH nie powinien być taki sam jak GOROOT. Ustaw go na coś podobnego $HOME/goi dodaj $GOPATH/bindo swojej ŚCIEŻKI.
elithrar

Przy okazji, polecenie go tour get i adres URL zostały teraz zmienione na: go get golang.org/x/tour/gotour
niemiecki

Odpowiedzi:


183

Instalacja go 1.4 z homebrew na OSX:

1) Utwórz katalogi

mkdir $HOME/Go
mkdir -p $HOME/Go/src/github.com/user

2) Ustaw swoje ścieżki

export GOPATH=$HOME/Go
export GOROOT=/usr/local/opt/go/libexec
export PATH=$PATH:$GOPATH/bin
export PATH=$PATH:$GOROOT/bin

3) Zainstaluj Go

brew install go

4) "idź po" podstawy

go get golang.org/x/tools/cmd/godoc

5) Zacznij tutaj: https://golang.org/doc/code.html w sekcji „Twój pierwszy program”


2
IntelliJ Idea nie znajduje GOPATH zdefiniowanego w twoim .bashrc? W kroku 2 wklej linie eksportu do .bash_profile, a nie do .bashrc, zrestartuj Maca, a IntelliJ znajdzie GOPATH (właśnie przetestowany, wymagany restart)
firepol

1
Zautomatyzowałem konfigurację $ GOPATH, którą opisujesz github.com/camilin87/setup_go
Camilo Sanchez

Dlaczego używasz $Home/Godużej litery G? Instalator homebrew używa małych liter GEg ==> Caveats A valid GOPATH is required to use the `go get` command. If $GOPATH is not specified, $HOME/go will be used by default: https://golang.org/doc/code.html#GOPATH
Snowcrash

4
Ta odpowiedź jest bardzo nieaktualna i powoduje mnóstwo problemów, biorąc pod uwagę zmiany w Go. Pojawia się ona jako pierwsza w wyszukiwaniach Google „How to install Go using Brew”. Oznacza to, że wiele osób jest kierowanych do tej przestarzałej i niedokładnej odpowiedzi. Nie musisz już ustawiać żadnych ścieżek dla Go stackoverflow.com/a/21012349/3299397 i ustawiasz GOROOT tylko wtedy, gdy tworzysz rzeczywisty język Go (tak jak robisz zmiany w podstawowym kodzie Go reddit.com/r/golang / komentarze / alrnuk /… )
Kyle Bridenstine

55

Po połączeniu powyższych odpowiedzi, oto, co zadziałało dla mnie OSX 10.12 (Sierra)i Go v1.7.1przy użyciu Homebrew:

Dodałem to z odpowiedzi Kosha do mojego .zshrclub .bashrc:

# Go development
export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

Następnie w nowym oknie / karcie terminala:

$ brew install go
==> Downloading https://homebrew.bintray.com/bottles/go-1.7.1.sierra.bottle.tar.gz
Already downloaded: /Users/nigel/Library/Caches/Homebrew/go-1.7.1.sierra.bottle.tar.gz
==> Pouring go-1.7.1.sierra.bottle.tar.gz
==> Caveats
As of go 1.2, a valid GOPATH is required to use the `go get` command:
  https://golang.org/doc/code.html#GOPATH

You may wish to add the GOROOT-based install location to your PATH:
  export PATH=$PATH:/usr/local/opt/go/libexec/bin
==> Summary
🍺  /usr/local/Cellar/go/1.7.1: 6,436 files, 250.6M

$ go get golang.org/x/tools/cmd/godoc

$ go get github.com/golang/lint/golint

$ go get golang.org/x/tour/gotour

$ gotour
2016/10/19 12:06:54 Serving content from /Users/nigel/.go/src/golang.org/x/tour
2016/10/19 12:06:54 A browser window should open. If not, please visit http://127.0.0.1:3999
2016/10/19 12:06:55 accepting connection from: 127.0.0.1:52958

To działało świetnie dla mnie w Sierra 10.12.5 z go 1.8.3. Dzięki!
thewoolleyman

Pracowałem dla mnie na Catalinie 10.15.2 z go 1.13.5. Dziękuję Ci!
Ross Zurowski

Kontynuując trend, pracował dla mnie na Mojave 10.14.6 z go 1.13.8. I nie modyfikować ten nieznacznie jednak: kiedy eksport ścieżki, kładę ścieżki Idź w przód z $PATHraczej niż na końcu. A więc trzecia linia mojego pliku rc wygląda tak:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
To powinna być akceptowana odpowiedź, ponieważ doskonale opisuje, jak jej używać z homebrew!
muuvmuuv

Jak na ten komentarz GitHub , go get github.com/golang/lint/golintma nową ścieżkę:go get -u golang.org/x/lint/golint
schottsfired

23

Myślę, że znalazłem rozwiązanie, powinienem był wyeksportować:

export PATH=$PATH:/usr/local/Cellar/go/1.0.2/bin/

Zamiast

GOPATH=/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/
export GOPATH

Od tego momentu „idź weź” umieszcza pliki binarne (tak sądzę). gotour działa:

$ gotour
2012/10/11 18:35:50 Serving content from /usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/go-tour
2012/10/11 18:35:50 Open your web browser and visit http://127.0.0.1:3999/ 

Btw oparłem moją odpowiedź na tym poście

http://code.google.com/p/go-tour/issues/detail?id=39 gdzie mówią o eksportowaniu:

/usr/local/Cellar/go/1.0.2/src/pkg/code.google.com/p/

A strona startowa z go: http://golang.org/doc/install, gdzie mówią, że musisz wyeksportować:

export PATH=$PATH:/usr/local/go/bin

Musiałem umieścić dodatkowy bin / na końcu, ponieważ wydaje się, że teraz umieścili te pliki wykonywalne go w podkatalogu. To znaczy polecenie dla mojej ścieżki to:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Jeśli nie zainstalowałeś go, brewale skończyłeś tutaj, ponieważ nie możesz uruchomić go podczas korzystania z zsh, musisz zrobić to samo (wyeksportować ścieżkę do swojej instalacji go). W moim przypadku było tak: export PATH=$PATH:/usr/local/go/binjeśli to nie zadziała, to prawdopodobnie masz je gdzieś indziej zainstalowane.
andilabs

9

Umieściłem to w moim $ {HOME} /. Bash_profile

export GOPATH="${HOME}/.go"
export GOROOT="$(brew --prefix golang)/libexec"
export PATH="$PATH:${GOPATH}/bin:${GOROOT}/bin"

test -d "${GOPATH}" || mkdir "${GOPATH}"
test -d "${GOPATH}/src/github.com" || mkdir -p "${GOPATH}/src/github.com"

oparte na odpowiedzi golfadas, ale zaktualizowane do pracy ze starymi i nowymi wersjami naparu.


7

Uważam, że powinieneś był postawić GOPATĘ przed sobą go get. Cóż, przynajmniej tutaj w mojej maszynie działało to sprawnie.

Ustawiłem GOPATH na folder w moim folderze domowym.

Mam nadzieję że to pomoże!


7
To jest właściwa rada. export GOPATH=$HOME/goi export PATH=$PATH:$GOPATH/binobejmuje wszystko, czego potrzebujesz. Zastąp $HOME/gowybraną ścieżkę.
elithrar

5

Tylko aktualizacja tutaj - napotkałem ten sam problem, a poprzednie odpowiedzi NIE pomogły. W obecnych (~ 1.2.2) wersjach Go zainstalowanych przez Homebrew, musisz ustawić GOROOT na następujące:

export GOROOT=/usr/local/Cellar/go/1.2.2/libexec

Trochę nie znam struktury folderów go lub zmian w instalacji go za pośrednictwem homebrew, więc tak naprawdę nie wiem, dlaczego. Ale - jeśli brakuje ci czegoś, co wydaje się być wszystkimi podstawowymi pakietami, powyższe powinno naprawić.


Możesz po prostu odinstalować aktualną wersję go i zainstalować nową. Tak właśnie zrobiłem i wszystko działało dobrze.
Kent Bull

W przypadku homebrew zawsze powinieneś używać /usr/local/opt/jako podstawy. W ten sposób nie musisz nawet aktualizować zmiennej, gdy pojawi się nowa wersja.
zajęć
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.