Я пытаюсь сделать go get
:
go get github.com/go-sql-driver/mysql
и это терпит неудачу со следующей ошибкой:
package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath
когда я делаю a go env
, список значений Go отображается, как показано ниже:
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"
ясно, что GOPATH не установлен, как и где я могу установить его?
Я вижу много потоков, в которых упоминается эта ошибка, но ни один из них не дает ответа на мой вопрос, какой файл нужно отредактировать, чтобы указать значение для этого пути?
GOPATH
для вас: см. Мой ответ ниже .Ответы:
Новый способ:
Проверьте этот ответ.
Старый Путь:
Просто добавьте следующие строки в ~ / .bashrc, и это сохранится. Однако вы можете использовать другие пути, которые вам нравятся, как GOPATH вместо $ HOME / go в моем примере.
источник
/usr/share/go
на моем Ubuntu 13.10.$ source ~/.bashrc
;)Убунту 14.04
Дополнительно вы можете добавить эту строку в файл
источник
GOPATH должен быть установлен во вновь созданный пустой каталог. Это «рабочее пространство», куда он загружает пакеты и так далее. Я использую ~ / .go.
Например:
источник: http://www.larry-price.com/blog/2013/12/15/setting-up-a-go-environment-in-ubuntu-12-dot-04/
источник
Новый путь: Go Modules
Начиная с Go 1.11, вам больше не нужно использовать GOPATH. Просто зайдите в каталог вашего проекта и сделайте это один раз:
Старый путь: ГОПАТ
Если вы настаиваете на работе с GOPATH, обратите внимание на это:
Из документации :
источник
Если, например, это Ubuntu, после установки пакетов:
Просто добавьте следующие строки в ~ / .bashrc (вашего пользователя)
источник
Нет необходимости редактировать какой-либо файл, мы можем просто использовать команду выше для непосредственного редактирования переменных среды Go.
источник
Напишите этот код в Терминале.
Заметка : это будет сбрасываться при каждом новом окне терминала или перезагрузке системы.
Чтобы быть постоянным, вставьте приведенный ниже код в файл
.zshrc
или.bashrc
файл в соответствии с вашей оболочкой. Эти файлы в вашем домашнем каталоге . Это будет как ниже.источник
Вам также понадобится GOPATH позже. Так что добавь это
~/.bashrc
.источник
Если вы настроили что-либо, что требует модификации переменных среды, например, Java, Go и т. Д., Это будет очень знакомо.
Я предполагаю, что у вас есть следующая структура каталогов где-то в качестве пути Go:
sudo nano /etc/environment
PATH=...
и идите до конца и добавьте двоеточие:
после последнего пути, затем вставьте полныйgo path
текст, например/home/user/gocode
и вы сделали, это должно сделать это постоянным через систему.
источник
Вот что заставило меня работать на Ubuntu 15.10, используя
fish shell
:Затем мне пришлось изменить права доступа к
go
папке (она была установлена как root)источник
Путь go может быть любым, где вы хотите, просто создайте каталог и установите переменную глобального пути в имени GOPATH для вашей среды.
источник
С Go 1.8 (Q2 2017) вам не нужно будет редактировать файлы, если вы примете
GOPATH
значение по умолчанию (установлено для вас)Вы можете увидеть комментарии к проблеме 17262 и соответствующее голосование в твиттере :
источник
Моя игровая среда была похожа на вашу.
Я решил это, установив GOPATH в / usr / lib / go . Попробуйте это.
источник
GOPATH - это переменная среды для вашего рабочего места. GOROOT - это переменная окружения вашего установочного каталога. Хотя GOROOT и GOPATH автоматически устанавливаются (если не было бы ошибки) во время установки, чтобы указать их вручную, вы можете выполнить следующую процедуру. Кроме того, для получения дополнительной информации вы можете обратиться к вики-странице GO .
Лучше установить GOPATH в каталог внутри вашего домашнего каталога, например, $ HOME / go,% USERPROFILE% \ go (Windows).
На вашем терминале типа
в открытом документе на Терминале нажмите i и добавьте следующий путь
нажмите ESC и введите : x . Наконец, вы должны перезапустить ( закрыть и открыть ) свой терминал или выйти и снова войти в систему .
ВНИМАНИЕ ! Не устанавливайте GOROOT и GOPATH в один и тот же каталог, иначе вы получите предупреждение.
источник
И вы можете проверить по $ go env
источник
(Ubuntu)
Если вы не установите GOPATH, будет использоваться значение по умолчанию.
Вы должны добавить $ GOPATH / bin в ваш PATH, чтобы выполнить любой двоичный файл, установленный в $ GOPATH / bin, или вам нужно набрать $ GOPATH / bin / the-command. Добавьте это в ваш ~ / .bash_profile
Текущая команда GOPATH:
Изменение команды GOPATH:
источник
Это была самая раздражающая вещь, чтобы иметь дело с. В надежде сэкономить ваше время.
IF go был установлен от имени пользователя root. Пользователю root вашего системного текстового файла bash_profile ~ / .bash_profile необходимо назначить $ GOROOT в каталог go install, а $ GOPATH - в каталог go / src.
убедитесь, что путь к двоичному файлу находится в вашем пути на .bash_profile
PATH = $ PATH: $ HOME / бен: / USR / местные / бен: / USR / местные / пойти / бен
Этот PATH может быть длинной строкой, необходимой для добавления новых элементов, разделенных двоеточием:
выйдите из редактора vi и сохраните профиль bash (: wq означает запись и выход)
Вы должны выйти из терминала и снова войти в систему, чтобы профиль снова запустился ... или вы можете просто запустить его с помощью экспорта.
Вы можете проверить go env:
Ура!
Теперь вы можете использовать sudo и go, загружать и создавать каталоги внутри go / src, и вы можете приступить к тому, что вы пытались выполнить.
пример
Теперь вы столкнетесь с другой проблемой .. у вас может не быть установленного git .. это еще одно приключение .. :)
источник
go get
ничего размещать рядомGOROOT
.На моей машине Fedora 20 я добавил следующие строки в мой ~ / .bashrc:
источник
GOROOT
. (Если только вы не в очень малой подгруппе людей, которые используют бинарный дистрибутив Go, но устанавливаете его где-то там, где нестандартно.)Еще одно решение: экспортировать каждую
GO*
переменную среды изgo env
.bashrc:
источник
eval
В этой ситуации обычно плохая идея и излишество ИМХОGOPATH
толькоОтредактируйте свой,
~/.bash_profile
чтобы добавить следующую строку:Сохраните и выйдите из вашего редактора. Затем источник вашего
~/.bash_profile
Примечание. Установите путь GOBIN для создания двоичного файла при запуске go install
источник
Этот скрипт поможет вам переключать Gopaths. https://github.com/buffonomics/goswitch
источник
Как написано в официальной инструкции :
Так, например, если вы кодируете в Jetbrains Webstorm (используя плагин Go ), вы можете выбрать
GOPATH
как/Users/<user>/WebstormProjects
.Проще говоря, установите его там, где вы хотите разместить свои проекты Go.
источник
Вы можете использовать «экспортное» решение так же, как и другие ребята. Я хотел бы предложить вам другое решение для постоянного удобства: вы можете использовать любой путь в качестве GOPATH при запуске команд Go.
Во-первых, вам нужно скачать небольшой инструмент с именем
gost
: https://github.com/byte16/gost/releases . Если вы используете Ubuntu, вы можете скачать версию для Linux ( https://github.com/byte16/gost/releases/download/v0.1.0/gost_linux_amd64.tar.gz ).Затем вам нужно запустить команды ниже, чтобы распаковать его:
Вы получите исполняемый файл
gost
. Вы можете переместить его/usr/local/bin
для удобного использования:Запустите команду ниже, чтобы добавить путь, который вы хотите использовать в качестве GOPATH, в пространство путей
gost
. Требуется дать пути имя, которое вы будете использовать позже.Запустите любую нужную команду Go в формате:
Например, вы хотите работать
go get github.com/go-sql-driver/mysql
с/home/foobar/bar
как GOPATH, просто сделать это , как показано ниже:Это поможет вам установить GOPATH и запустить команду. Но помните , что вы добавили путь в
gost
«S pathspace . Если вы находитесь под каким-либо уровнем подкаталогов/home/foobar/bar
, вы можете даже просто запустить команду ниже, которая будет делать то же самое для краткости:gost
это простой инструмент Go, который может помочь вам управлять GOPATH и выполнять команды Go. Для получения более подробной информации о том, как использовать его для запуска других команд Go, вы можете просто запуститьgost help goCmdName
. Например, вы хотите узнать больше оinstall
, просто введите слова ниже в:Вы также можете найти более подробную информацию в README проекта: https://github.com/byte16/gost/blob/master/README.md
источник
Вы должны обновить PATH в зависимости от используемого вами терминала (bash или zsh).
~/.bashrc
Или~/.zshrc
в редактореexport GOPATH=$HOME/go:/$HOME/projects/go
Здесь вы можете добавить один или несколько путей, разделенных точкой
:
с запятой из разных мест ваших проектов GO в системе, вGOPATH
переменную среды, т. Е. И т./path/1:path/2:path/3
Д.В моем случае я добавил 2 пути, как показано выше, один из корня,
$HOME/go
а другой из каталога проектов.:/$HOME/projects/go
источник