繁体   English   中英

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

[英]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 getroot用户,它没有$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项目,因为它有点痛苦,文档和错误很长但似乎没有解释什么是错误的任何有意义和明确的方式( GOROOTGOPATH是两个设置,但PATH GOROOTGOPATH似乎都有点偏离)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM