如何确认$ GOPATH和$ GOROOT是否正确设置?

时间:2016-03-10 15:53:24

标签: go

这不是这个问题的重复:

what should be the values of GOPATH and GOROOT?

我不想知道这些值应该是什么。我想知道当我在控制台中输入ls $GOROOTls $GOPATH时应该看到的内容。我很确定我在大约一年前的教程后设置错误了,我希望能够通过简单地检查它们指向正确的内容来确认这两个指向它们应该在哪里。

这就是我现在的位置。看起来$GOROOT无处可指。我很确定它应该指向usr/local/go,但要确认我是否知道ls $GOROOT的预期结果应该更容易。

至于$GOPATH我不完全确定我的“工作区”是我所有的代码是什么,或者只是github的东西,或者我正在工作的特定文件夹。我知道它应该指向我的“工作空间”,但我不知道我正在寻找的工作空间是什么样的。

Sephs-MBP:ThumbzArt seph$ $GOROOT
Sephs-MBP:ThumbzArt seph$ $GOPATH
-bash: /Users/seph/code/golang: is a directory
Sephs-MBP:ThumbzArt seph$ ls $GOROOT
Bman.jpg            README.md           ThumbzArt.sublime-workspacescripts              thumbzart.go
LICENSE.md          ThumbzArt.sublime-project   public              templates           ticktock.go
Sephs-MBP:ThumbzArt seph$ $GOPATH
-bash: /Users/seph/code/golang: is a directory
Sephs-MBP:ThumbzArt seph$ ls $GOPATH
-   bin p   pkg src
Sephs-MBP:ThumbzArt seph$ ls /usr/local/go
AUTHORS     CONTRIBUTORS    PATENTS     VERSION     bin     doc     lib     pkg     src
CONTRIBUTING.md LICENSE     README.md   api     blog        favicon.ico misc        robots.txt  test
Sephs-MBP:ThumbzArt seph$ 

我知道这个问题似乎很荒谬,但很难确定你没有预期结果的事情。

谢谢

Sephs-MBP:streak seph$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/seph/code/golang"
GORACE=""
GOROOT="/usr/local/go"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT=""
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

Sephs-MBP:streak seph$ go version
go version go1.5.2 darwin/amd64

Sephs-MBP:streak seph$ which go
/usr/local/go/bin/go

1 个答案:

答案 0 :(得分:-5)

编辑:我偶然发现的另一个非常有用的功能是:go help gopath。这可能是某些人的回答。

文件夹$GOPATH指向的应该是这样的:

Sephs-MBP:streak seph$ ls $GOPATH
-   bin p   pkg src
另一方面,如果您使用$GOROOTls $GOROOT相比,

ls $GOPATH会产生意外结果。这是因为我认为$GOROOT未设置在此上下文中。

Sephs-MBP:helloworld seph$ ls $GOROOT
helloworld.go

如果您使用go env,您将会看到$GOROOT

的真实性质
Sephs-MBP:streak seph$ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/seph/code/golang"
GORACE=""
GOROOT="/usr/local/go"            //this is where it actually points
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
GO15VENDOREXPERIMENT=""
CC="clang"
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-    arguments -fmessage-length=0 -fno-common"
CXX="clang++"
CGO_ENABLED="1"

如果您从$GOROOT得到go env的结果并且ls,您会看到类似的内容:

Sephs-MBP:streak seph$ ls /usr/local/go
AUTHORS     CONTRIBUTORS    PATENTS     VERSION     bin     doc         lib     pkg     src
CONTRIBUTING.md LICENSE     README.md   api     blog        favicon.ico misc        robots.txt  test

如果检查了所有这些内容,那么您的$GOPATH$GOROOT已正确设置。