首页 文章

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

提问于
浏览
4

运行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 回答

  • 0
    sudo go get github.com/go-sql-driver/mysql
    

    这在 root 用户下运行 go get ,该用户没有 $GOPATH 设置 .

    做就是了:

    go get github.com/go-sql-driver/mysql
    

    一般来说,做:

    go get
    

    在项目文件夹中,它将安装所有依赖项 . 以下将安装测试中提到的依赖项:

    go get -t
    
  • 3

    你只需要删除 sudo . 您的环境变量是在用户级别定义的 . 如果你做 sudo go env 你会看到 GOPATH 没有在那里设置

  • 5

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

  • 0

    在写完回复之后才意识到它会留下它以防万一其他人可能需要答案......

    所以看起来你可能用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
    

    我希望有所帮助 .

  • 0

    在我的情况下,我导入了一个不正确的 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项目,因为它似乎以任何有意义和清晰的方式解释了什么是错误的( GOROOTGOPATH 都是设置好的,但是 PATH GOROOTGOPATH 似乎都有点关闭) .

相关问题