Search code examples
gogopath

How to find a Go package installed with 'go get -u' when no $GOPATH is defined?


I'm following the gRPC Quickstart tutorial for Go, https://grpc.io/docs/quickstart/go/, and have installed gRPC using the command

go get -u google.golang.org/grpc

I actually haven't defined a GOPATH environment variable:

> echo $GOPATH

which, as I understand it, means that it defaults to ~/go, or in my case /Users/kurt/go.

At the next step, I'd like to build the example by doing

cd $GOPATH/src/google.golang.org/grpc/examples/helloworld

However, I find that the directory doesn't exist, and there is also no google.golang.org directory in /Users/kurt/go/src:

~/g/src> ls *google*
fish: No matches for wildcard '*google*'. See `help expand`.
ls *google*
   ^

Should the package not be located here? That's what I understand from Where does go get install packages?.


Solution

  • Using Go Modules, you can find 'go get' downloaded files at:

    ~/go/pkg/mod/cache/download
    

    However, it should be treated like an immutable copy of the source code.

    If you want a mutable copy of the source code, you should clone the repository:

    git clone https://github.com/grpc/grpc-go