即使配置了GOPTH,也无法下载fabric sdk go

即使配置了GOPTH,也无法下载fabric sdk go,go,environment-variables,ubuntu-16.04,hyperledger-fabric,blockchain,Go,Environment Variables,Ubuntu 16.04,Hyperledger Fabric,Blockchain,我是GOlang和Hyperledger fabric的新手,我只是在配置环境。但我犯了一个奇怪的错误 user1@NTP-145UBUNTU:~$ go env GOARCH="amd64" GOBIN="" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="/usr/lib/go-1.6/bin" GORACE="" GOROOT="/usr/lib/go-1.6" GOTOOLDIR="

我是GOlang和Hyperledger fabric的新手,我只是在配置环境。但我犯了一个奇怪的错误

 user1@NTP-145UBUNTU:~$ go env
 GOARCH="amd64"
 GOBIN=""
 GOEXE=""
 GOHOSTARCH="amd64"
 GOHOSTOS="linux"
 GOOS="linux"
 GOPATH="/usr/lib/go-1.6/bin"
 GORACE=""
 GOROOT="/usr/lib/go-1.6"
 GOTOOLDIR="/usr/lib/go-1.6/pkg/tool/linux_amd64"
 GO15VENDOREXPERIMENT="1"
 CC="gcc"
 GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0"
 CXX="g++"
 CGO_ENABLED="1"
 user1@NTP-145UBUNTU:~$ sudo go get -u github.com/hyperledger/fabric-sdk-go
 [sudo] password for user1: 
 package github.com/hyperledger/fabric-sdk-go: cannot download, $GOPATH not set. For more details see: go help gopath
这是说我的GOPATH env变量没有设置。我已经配置了它,它也显示在evn变量列表中。如果这里有人面临这个问题,请帮助我。请注意:我使用的是ubuntu 16 LTS


提前感谢。

您正在使用
sudo
执行
go-get
。这将导致所有env变量丢失,因为该命令以user
root
身份执行

通常这是不必要的$GOPATH通常设置为
$HOME/go/
。这也是默认值。您应该将$GOPATH设置为此值。之后,您不必使用
sudo
调用
go-get


正如pizza lord所建议的,您应该更新您的go版本。

您正在使用
sudo执行
go-get
。这将导致所有env变量丢失,因为该命令以user
root
身份执行

通常这是不必要的$GOPATH通常设置为
$HOME/go/
。这也是默认值。您应该将$GOPATH设置为此值。之后,您不必使用
sudo
调用
go-get


正如pizza lord所建议的,你应该更新你的go版本。

删除与ubuntu打包的现有golang版本。将您的golang版本更新至1.9或最新版本

$ sudo apt-get remove golang-go 
$ sudo apt-get remove --auto-remove golang-go
$ sudo add-apt-repository ppa:gophers/archive
$ sudo apt-get update
$ sudo apt-get install golang-1.10-go

Update ~/.bash_profile with golang variables
export PATH=$PATH:"/usr/lib/go-1.10/bin"
export GOPATH=$HOME/go

删除与ubuntu打包的现有golang版本。将您的golang版本更新至1.9或最新版本

$ sudo apt-get remove golang-go 
$ sudo apt-get remove --auto-remove golang-go
$ sudo add-apt-repository ppa:gophers/archive
$ sudo apt-get update
$ sudo apt-get install golang-1.10-go

Update ~/.bash_profile with golang variables
export PATH=$PATH:"/usr/lib/go-1.10/bin"
export GOPATH=$HOME/go

有两种可能的错误

  • 您尚未正确配置
    $GOPATH
  • 试试这个

     mkdir ~/go-workspace
    
    .bashrc
    文件中,附加以下内容

    export GOPATH=~/go-workspace
    
  • 您正在使用
    go-get
    sudo
  • 尝试:

    如果出现“权限被拒绝”错误,请重试

    sudo chown user1 $(echo $GOPATH)
    

    有两种可能的错误

  • 您尚未正确配置
    $GOPATH
  • 试试这个

     mkdir ~/go-workspace
    
    .bashrc
    文件中,附加以下内容

    export GOPATH=~/go-workspace
    
  • 您正在使用
    go-get
    sudo
  • 尝试:

    如果出现“权限被拒绝”错误,请重试

    sudo chown user1 $(echo $GOPATH)
    

    首先,这不是一个有效的GOPATH,它不应该指向bin目录。其次,sudo在没有env变量的新环境中运行该命令。您不应将sudo与
    go get
    ^一起使用,但您还应更新您的go版本当前go 1.10已过时,这意味着支持的最低版本是go 1.8。谢谢您,请允许我更新版本,首先,该版本不是有效的GOPATH,它不应指向bin目录。其次,sudo在没有env变量的新环境中运行该命令。您不应将sudo与
    go get
    ^一起使用,但您也应更新您的go版本当前go 1.10已过时,这意味着支持的最低版本是go 1.8谢谢,请让我更新版本,我通过重新安装新版本的Go lang进行了尝试和修复。非常感谢。我通过重新安装新版本的Go lang进行了尝试和修复。非常感谢。我完全按照你说的做了尝试。非常感谢。如果问题解决了,你可以接受答案。这对其他人有帮助。是的,我完全按照你说的做了。非常感谢。如果问题解决了,你可以接受答案。它帮助其他人。问题是版本,我安装的版本有一个bug,比如GopaT不会考虑没有配置工作区。所以我刚刚删除了Go Lang并将新版本安装到/home/Go文件夹中。然后我使用GOROOT path变量配置了路径。现在工作正常。啊,好的。Ubuntu有一些非常坏的软件包。很高兴你能解决它。问题是版本,我安装的版本有一个bug,比如GopaT不会考虑没有配置工作区。所以我刚刚删除了Go Lang并将新版本安装到/home/Go文件夹中。然后我使用GOROOT path变量配置了路径。现在工作正常。啊,好的。Ubuntu有一些非常坏的软件包。很高兴你能处理好。