Go: go get $GOPATH error, когда GOPATH установлен
При запуске команды go get:
sudo go get github.com/go-sql-driver/mysql
Я получаю следующую ошибку
пакет github.com/go-sql-driver/mysql: невозможно загрузить, $GOPATH не установлен. Для получения более подробной информации см. Go Help Gopath
Однако $ GOPATH уже установлен.
Бег echo $GOPATH
дает /Users/userxyz/Desktop/Code
Бег go env
дает
.....
GOPATH="/Users/userxyz/Desktop/Code"
...
GOROOT="/usr/local/go"
.....
Я уже пытался установить GOPATH в качестве переменной среды, добавив следующие строки
export GOPATH="$HOME/Desktop/Code"
export PATH=$PATH:$GOPATH/bin
в следующие файлы, в качестве альтернативы
~/.profile (/etc/profile)
~/.bashrc
~/.bash_profile
5 ответов
sudo go get github.com/go-sql-driver/mysql
Это работает go get
под root
пользователь, которого нет $GOPATH
задавать.
Просто делать:
go get github.com/go-sql-driver/mysql
Как правило, сделать:
go get
в папке проекта, и он установит все зависимости. Следующее установит зависимости, упомянутые в тестах:
go get -t
Вам просто нужно бросить sudo
, Ваши переменные среды определены на уровне пользователя. если вы делаете sudo go env
вы увидите, что GOPATH
там не установлен
В моем случае я импортировал неверный GOPATH
что не существовало и неверно GOROOT
в моем PATH
установка моего export GOROOT=/opt/go
затем export GOPATH=$HOME/work
, обеспечение $HOME/work
существовал и имел доступ для моего пользователя, кажется, решил проблему для go get {whattoget}
затем обеспечение export GOPATH=$HOME/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
был в моем ~/.profile
помог. Ничто в этой теме, казалось, не совсем подходит.
В дальнейшем я мог бы просто начать использовать Docker для создания своих проектов go, так как это немного мучительно, а документация и ошибки длинные, но, кажется, не объясняют, что не так, каким-либо значимым и ясным способом (GOROOT
а также GOPATH
были оба настроены, но PATH
GOROOT
а также GOPATH
Казалось, все немного не в себе).
Тебе не нужен Судо. Если "Соглашение с лицензией Xcode/iOS требует прав администратора" останавливает вас, просто заново откройте Xcode и примите лицензионное соглашение Xcode.
Просто понял после написания ответа, что уже почти на 4 года поздно, но я оставлю это на всякий случай, если есть другие, которым могут понадобиться ответы...
Похоже, что вы могли создать каталог с помощью sudo или с привилегиями root. Если вы попытаетесь $go get
с обычным пользователем вы получаете ошибку прав доступа, а когда вы пытаетесь сделать это с помощью sudo, вы получаете ошибку сброса GOPATH. У меня недавно была эта проблема, и я решил ее, просто изменив владельца каталога.
export GOPATH=/directory/of/your/goproject
chown -R ubuntu@staff $GOPATH
cd $GOPATH && go get
Вот только у вас есть некоторые переменные env для двойной проверки:
export GOPATH=/home/ubuntu/work export
PATH=$PATH:$GOROOT/bin:$GOPATH/bin
Имейте в виду, что вам не нужно объявлять или изменять $GOROOT.
Наконец, вы можете использовать [profile.d][1] для экспорта переменных env:
cat > /etc/profile.d/setgoenv.sh <<EOL
export GOPATH=/home/ubuntu/work
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
EOL
Я надеюсь, что это помогло.