运行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
答案 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
PATH
和GOROOT
似乎都有点偏差。