Установите go with brew и запустите gotour


101

Я следил за http://tour.golang.org/, пока не добрался до третьего шага, в котором говорится, что вы можете установить gotour в своей системе. После этого я установил язык go с brew by:

brew install hg
brew install go

Затем я загрузил готуур:

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

Когда я пытался запустить gotour, он не распознал команду:

$ gotour
-bash: gotour: command not found

и

$ go gotour

и

$ ./gotour

Итак, я попытался увидеть путь, но он был пуст,

echo $GOPATH

поэтому я определил GOPATH:

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

Теперь я могу запустить gotour, запустив

./gotour

Но я не уверен в своей среде go ... разве я не предполагал, что смогу запустить gotour мимо

go run gotour

или просто набрав (как описано на этом сайте http://www.moncefbelyamani.com/how-to-install-the-go-tour-on-your-mac/ ):

gotour

Я хотел бы знать, правильно ли я делаю что-то, так как я новичок в языке программирования go.


2
Ваш GOPATH не должен быть таким же, как ваш GOROOT. Установите что-то вроде $HOME/goи добавьте $GOPATH/binв свой PATH.
elithrar

Кстати, команда go tour get и URL-адрес теперь изменены на: go get golang.org/x/tour/gotour
немецкий

Ответы:


185

Установка go 1.4 с помощью homebrew на OSX:

1) Создать каталоги

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

2) Настройте свои пути

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

3) Установить Go

brew install go

4) "иди и возьми" основы

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

5) Начните здесь: https://golang.org/doc/code.html в «вашей первой программе».


2
IntelliJ Idea не находит GOPATH, определенного в вашем .bashrc? На шаге 2 вставьте строки экспорта в .bash_profile, а не в .bashrc, перезагрузите Mac, и IntelliJ найдет GOPATH (только что протестировано, требуется перезагрузка)
firepol

1
Я автоматизировал настройку $ GOPATH, которую вы описываете github.com/camilin87/setup_go
Камило Санчес

Почему вы используете $Home/Goбукву G в верхнем регистре? Установщик homebrew использует строчные буквы 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
Этот ответ очень устарел и вызывает массу проблем, учитывая изменения в Go, и он появляется первым в поиске Google по запросу «Как установить Go с помощью Brew». Это означает, что многие люди получают этот устаревший и неточный ответ. Вам больше не нужно устанавливать какие-либо пути для Go stackoverflow.com/a/21012349/3299397, и вы устанавливаете GOROOT только в том случае, если вы разрабатываете фактический язык Go (например, вы вносите изменения в базовый код Go reddit.com/r/golang / comments / alrnuk /… )
Кайл Бриденстайн 08

55

Следуя приведенным выше ответам, это то, что сработало для меня OSX 10.12 (Sierra)и Go v1.7.1с помощью Homebrew:

Я добавил это из ответа Коша на свой .zshrcили .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"

Затем в новом окне / вкладке терминала:

$ 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

Это отлично сработало для меня на Sierra 10.12.5 с go 1.8.3. Спасибо!
thewoolleyman

У меня работал на Catalina 10.15.2 с go 1.13.5. Спасибо!
Росс Зуровски

Продолжая тенденцию, у меня работал на Mojave 10.14.6 с go 1.13.8. Я изменить это немного , хотя: когда я экспортировать путь, я положил пути пойти на на передней части , $PATHа не в конце. Итак, третья строка моего файла rc выглядит так:export PATH="${GOPATH}/bin:${GOROOT}/bin:$PATH"
romellem

1
Это должен быть принятый ответ, поскольку он прекрасно описывает, как использовать его с домашним пивом!
muuvmuuv

Согласно этому комментарию GitHub , у go get github.com/golang/lint/golintнего новый путь:go get -u golang.org/x/lint/golint
schottsfired

23

Думаю, я нашел решение, надо было экспортировать:

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

Вместо того

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

Так как именно туда 'go get' помещает двоичные файлы (я думаю). gotour работает:

$ 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/ 

Кстати, я основал свой ответ на этом сообщении

http://code.google.com/p/go-tour/issues/detail?id=39, где говорится об экспорте:

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

И начальная страница: http://golang.org/doc/install, где говорят, что вам нужно экспортировать:

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

Мне пришлось поставить дополнительную корзину / в конце, так как теперь кажется, что они теперь помещают эти исполняемые файлы go в подкаталог. То есть, команда для моего пути:export PATH=$PATH:/usr/local/Cellar/go/1.3.3/bin/bin/
Nate

Если вы не установили его, brewно оказались здесь, потому что вы не можете запустить go при использовании zsh, вам нужно сделать то же самое (экспортировать путь к вашей установке go). В моем случае это было: export PATH=$PATH:/usr/local/go/binесли это не сработает для вас, значит, он у вас, вероятно, установлен где-то еще.
andilabs

9

Я поместил это в свой $ {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"

основан на ответе golfadas, но обновлен для работы со старыми и новыми версиями brew.


7

Я думаю, вам следовало установить GOPATH перед собой go get. Ну, по крайней мере, здесь, на моей машине, это работало гладко.

Я установил GOPATH в папку в моей домашней папке.

Надеюсь это поможет!


7
Это правильный совет. export GOPATH=$HOME/goи export PATH=$PATH:$GOPATH/binпокрывает все, что вам нужно. Замените $HOME/goпуть по вашему выбору.
elithrar 02

5

Просто обновление здесь - я столкнулся с той же проблемой, и предыдущие ответы НЕ помогли. В текущих (~ 1.2.2) версиях Go, установленных Homebrew, вам необходимо установить GOROOT на следующее:

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

Я немного не знаком со структурой папок go или изменениями в установке go через homebrew, поэтому я действительно не знаю почему. Но - если вам не хватает того, что похоже на все основные пакеты, вышеперечисленное должно исправить.


Вы можете просто удалить текущую версию go и установить новую. Я так и сделал, и у меня все отлично работало.
Кент Булл

С домашним пивом вы всегда должны использовать его /usr/local/opt/как основу. Таким образом, вам даже не нужно обновлять переменную при выходе новой версии.
без
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.