The GOPATH
is an environment variable in Go that defines the root directory of your workspace, where your Go code, dependencies, and compiled binaries are stored — but it’s mostly relevant for older versions of Go (pre-1.11) or projects not using Go Modules.
GOPATH
Used For?Traditionally, GOPATH
is used to organize and locate:
Subdirectory | Purpose |
---|---|
src/ |
Source code files (organized by import path, e.g., github.com/user/app ) |
pkg/ |
Compiled package objects (.a files) for reuse |
bin/ |
Compiled executable binaries |
For example, if your GOPATH
is set to /home/user/go
, a project might be located at:
/home/user/go/
├── src/github.com/maelton/myapp/
├── pkg/
└── bin/
Starting with Go 1.11, the Go Modules system (go.mod
) was introduced and became the default in Go 1.16. This allows you to:
GOPATH
directory.go.mod
and go.sum
.GOPATH
?$GOPATH/bin
.GOPATH
.GOPATH