[英]Go : go get $GOPATH error, when GOPATH is set
运行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
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
没有设置在那里
你不需要sudo。 如果“同意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
我希望有所帮助。
在我的情况下,我导入了一个不存在的错误GOROOT
,并且在我的PATH
输入了错误的GOPATH
设置我的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
似乎都有点偏离)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.