运行go get命令时:
sudo go get github.com/go-sql-driver/mysql
我收到以下错误
包github.com/go-sql-driver/mysql:无法下载,$ GOPATH未设置 . 有关详细信息,请参阅:go help gopath
However $GOPATH is already set.
正在运行 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 回答
这在
root
用户下运行go get
,该用户没有$GOPATH
设置 .做就是了:
一般来说,做:
在项目文件夹中,它将安装所有依赖项 . 以下将安装测试中提到的依赖项:
你只需要删除
sudo
. 您的环境变量是在用户级别定义的 . 如果你做sudo go env
你会看到GOPATH
没有在那里设置你不需要sudo . 如果“同意Xcode / iOS许可证需要管理员权限”会阻止您,只需重新打开Xcode并接受Xcode的许可协议即可 .
在写完回复之后才意识到它会留下它以防万一其他人可能需要答案......
所以看起来你可能用sudo或root权限创建了目录 . 如果您与普通用户一起尝试
$go get
,则会收到权限错误,当您尝试使用sudo时,会出现GOPATH未设置错误 . 我最近遇到过这个问题,我只是通过改变目录的所有权来解决它 .这里只是让你有一些env变量来仔细检查:
请记住,您不需要声明或更改$ GOROOT .
最后,您可能希望使用[profile.d] [1]导出env变量:
我希望有所帮助 .
在我的情况下,我导入了一个不正确的
GOPATH
,并且我的PATH
中的GOROOT
不正确设置我的
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
似乎都有点关闭) .