LinuxmacOS

Where Does GVM Store Go Versions?

GVM keeps every Go release under ~/.gvm in your home folder, with pkgsets and archives beside them.

Last updated

GVM installs entirely inside .gvm in your home directory. Go releases land in the gos subfolder, package sets in pkgsets, and downloaded archives in archives. Sourcing the GVM script wires the active version into your shell.

Switching versions never touches the system Go. Each release owns its GOPATH layout under the same tree. Logs from installs sit beside the versions they built. Back up pkgset lists rather than the whole tree when migrating machines.

Where GVM stores this, by platform

Linux
~/.gvm

Releases in gos, sets in pkgsets, tarballs in archives. Source $HOME/.gvm/scripts/gvm in your shell profile. Switching versions only rewrites shims.

macOS
~/.gvm

Same home folder tree on Mac. Xcode command line tools must exist before installs compile. Apple Silicon builds fetch arm64 archives automatically.

Frequently asked questions

How do I list my GVM pkgsets?

Run gvm list to see installed sets and gvm pkgset list for the active Go version. Sets live under .gvm/pkgsets. Create one per project and switch with gvm pkgset use when you change folders.

Can I keep several Go versions with GVM?

Yes. gvm install fetches another release into .gvm/gos, and gvm use switches the active one. Each release keeps its own pkgsets. Delete a release with gvm uninstall when it goes stale.

Notice an outdated path? Let us know.