Go – $GOPATH must not be set to $GOROOT, why not

go

I've installed Go on my Linux machine in /usr/local/go, and intended to use /usr/local/go/src for development. However when I try this I get the following error:

$GOPATH must not be set to $GOROOT

Effectively as I understand it, this means you shouldn't use /usr/local/go for development. Why not?

Best Answer

Because /usr/local/go/src already contains the code for the standard library, and you should keep your own code separate from that.

I know, other development tools would have no problem with that, but Go is a little more strict in some ways. It's probably the same philosophy that lies behind flagging unused variables or imports as errors - avoiding problems which may seem small at first, but can lead to bigger headaches in the future.

Related Topic