Go:当设置GOPATH时,去获取$ GOPATH错误

时间:2014-07-16 10:32:24

标签: macos go environment-variables osx-mavericks

运行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 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

您只需删除sudo即可。 您的环境变量是在用户级别定义的。如果您执行sudo go env,则会看到GOPATH未设置

答案 2 :(得分:0)

你不需要sudo。如果“同意Xcode / iOS许可证需要管理员权限”会阻止您,只需重新打开Xcode并接受Xcode的许可协议。

答案 3 :(得分:0)

在写完回复之后才意识到这已经快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

我希望有所帮助。

答案 4 :(得分:0)

在我的情况下,我导入了一个不存在且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项目,因为它有点痛苦,文档和错误很长但似乎没有用任何有意义和清晰的方式解释什么是错的({ {1}}和GOROOT都已设置好,但GOPATH PATHGOROOT似乎都有点偏差。