Встановіть ідіть з пивом, і запустіть гюр


101

Я слідкував за http://tour.golang.org/ до тих пір, поки я дійшов до третього кроку, який говорить вам про те, що ви можете встановити getour у вашій системі. Після цього я встановив мову go з brew від:

brew install hg
brew install go

Потім я завантажив getour:

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

Коли я спробував запустити getour, він не розпізнав команду:

$ gotour
-bash: gotour: command not found

і

$ go gotour

і

$ ./gotour

Тож я спробував побачити шлях, і він порожній,

echo $GOPATH

тому я визначив ГОПАТУ:

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

Тепер я можу запустити гтур, рунуючи

./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до своєї ПАТИ.
елітар

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

Відповіді:


183

Встановлення go 1.4 з домашньою мовою на 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, перезавантажте макінтош і IntelliJ знайти GOPATH (тільки тестування, необхідне перезавантаження)
firepol

1
Я автоматизував налаштування $ GOPATH, яку ви описуєте github.com/camilin87/setup_go
Camilo Sanchez

Чому ви використовуєте $Home/Goз великого регістру G? Інсталятор домашніх програм використовує нижній регістр 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 / коментарі / alrnuk /… )
Kyle Bridenstine

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

Це чудово працювало для мене на Сьєррі 10.12.5 з go 1.8.3. Дякую!
thewoolleyman

Працював для мене на Каталіні 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

З того, де 'іди отримати' ставить бінарні файли (я здогадуюсь). getour працює:

$ 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/isissue/detail?id=39, де вони розповідають про експорт:

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

І сторінка для початку роботи від go: 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/
Нейт

Якщо ви не встановили його, 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, але оновлений для роботи зі старими та новими версіями заварювання.


7

Я те, що ти мав би поставити ГОПАТ перед собою go get. Ну, принаймні тут, у моїй машині, це справно працювало.

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

Сподіваюся, це допомагає!


7
Це правильна порада. export GOPATH=$HOME/goі export PATH=$PATH:$GOPATH/binохоплює все необхідне. Замініть $HOME/goна обраний вами шлях.
елітар

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.