Ошибка "невозможно загрузить, $ GOPATH не установлен".

Настроить:

Посмотрите на мою конфигурацию:

$ echo $GOPATH && ls -r $GOPATH
/home/cyrus/.go
src  pkg  bin

$ echo $GOROOT && ls $GOROOT
/usr/local/go
api  AUTHORS  bin  CONTRIBUTORS  doc  favicon.ico  include  lib  LICENSE  misc  PATENTS  pkg  README  robots.txt  src  test  VERSION

Вы можете видеть, что я установил путь для $GOPATH. Кроме того, я создал подкаталоги, которые мне могут не понадобиться.

Вопрос:

Почему следующая команда генерирует это сообщение об ошибке?

$ go get code.google.com/p/go-tour/gotour                                                                                                               
package code.google.com/p/go-tour/gotour: cannot download, $GOPATH not set. For more details see: go help gopath

Ответ 1

Если вы установите такую ​​переменную:

GOPATH=$HOME/go

Он не будет экспортироваться ни в какие подпроцессы. Он доступен только для этого процесса. Если вы хотите экспортировать его в подпроцессы, используйте export:

export GOPATH

Вы также можете комбинировать назначение и экспорт:

export GOPATH=$HOME/go

Ответ 2

Каталог My $GOROOT был создан с owner: root и group: wheel вместо того, чтобы использовать меня как владельца и администратора как группу. Я догадываюсь, что я использовал sudo, когда мне не было (или какой-то инструмент сделал это для меня). Так как go get не удалось записать пакеты в $GOROOT и, следовательно, ошибки $GOPATH not set и permission denied.

Используя chown и chgrp в моем $GOROOT (с -R для получения подпапок), "go get..." работал. В моем случае VS Code теперь смог установить компоненты Go, которые я был после.

Ответ 3

Когда вы запустите go env, вы сможете увидеть, установлен ли ваш GOPATH. Однако в моем случае эта команда решает его, когда я его запускал на моем терминале.

export GOPATH=/usr/local/bin

Ответ 4

У меня была настройка GOPATH, и она корректно показала команду go env. я должен был предоставить правильные разрешения для каталога go с помощью chmod и установить gb на go get github.com/constabulary/gb/....

Ответ 5

Сначала сделайте `go env 'и проверьте путь GOROOT. Соответственно, установите GOPATH. В моем случае он должен был установить GOPATH в /usr/lib/go. Раньше я пробовал его с помощью /usr/share/go и/usr/bin/go, но он не работал.

Ответ 6

$ GOPATH должен быть вашим текущим рабочим пространством, папкой, в которой находится ваш проект. или просто cd ~/go и попробуйте выполнить эти команды. Или вы можете просто обновить $ GOPATH в ~/.bashrc или ~/.bashrc_profile в Ubuntu