Saturday, October 24, 2026 4,350 lists 78,096 records on file
List your app or device

  1. Home
  2. Runtime Version Managers
  3. GVM

GVM

What it is

GVM is a free Go version manager for Linux and macOS. It installs and uninstalls Go versions by tag, including release versions and tip, and can list available release tags with an option to include weekly builds. The `gvm diff` command shows files added to or removed from GOROOT. GVM also manages GOPATH package sets, including sets kept local to a repository, and can link project directories into GOPATH. Package sets can use their own native code and dependencies through an overlay prefix and related environment variables. Install options include choosing a source or name, installing protobufs or build tools, and preferring or requiring binaries. The project supports version pinning, lockfiles, automatic switching, shell integration, and CI/CD use. Installation requires Bison, and platform-specific instructions list tools such as Git, Mercurial, Make, and GCC. Building Go 1.5 or later requires an existing Go installation for bootstrapping; Go 1.4 is given as an example. The software is MIT-licensed.

For and against

For

  • Installs and removes Go versions by tag.
  • Manages repository-local GOPATH package sets.
  • Can link project directories into GOPATH.
  • Supports shell integration and CI/CD use.
  • MIT-licensed and free.

Against

  • Installation requires Bison.
  • Additional platform tools may be required.
  • Building Go 1.5 or later needs an existing Go installation.

The verdict

GVM brings Go version installation and package-set management together, with repository linking and shell integration. Check the listed build prerequisites before adopting it, especially when compiling newer Go versions.

Who it suits

GVM suits Go developers on Linux or macOS who need to manage Go versions and GOPATH package sets. It may also fit projects using repository-local package sets or CI/CD workflows.

Plans and prices

gvm

Free

Go version management · MIT-licensed software

Every plan, in full

On the record

Available releases
The `gvm listall` command lists available release tags, with an option to include weekly builds.github.com · read 4 Oct 2026
GOROOT changes
The `gvm diff` command lists added and removed files in GOROOT.github.com · read 4 Oct 2026
Install options
Install options include choosing a source or name, installing protobufs or build tools, and preferring or requiring binaries.github.com · read 4 Oct 2026
Install versions
It installs and uninstalls Go versions by tag, including releases and the tip version.github.com · read 4 Oct 2026
License
The repository includes an MIT license granting permission to use, copy, modify, distribute, sublicense, and sell copies of the software subject to its conditions.github.com · read 4 Oct 2026
Limitations
The README says compiling Go 1.5 and later requires an existing Go installation for bootstrapping, and gives Go 1.4 as an example.github.com · read 4 Oct 2026
Maintainer
The README says the project is lovingly maintained by Benjamin Knigge and welcomes contributions.github.com · read 4 Oct 2026
Native dependencies
GVM supports package set-specific native code and dependencies using an overlay prefix and related environment variables.github.com · read 4 Oct 2026
Package sets
It manages GOPATH package sets and can keep a package set local to a repository.github.com · read 4 Oct 2026
Prerequisites
The installation instructions require Bison, and the platform-specific sections list additional tools such as Git, Mercurial, Make, and GCC.github.com · read 4 Oct 2026
Project linking
GVM can link project directories into GOPATH.github.com · read 4 Oct 2026
Purpose
GVM provides an interface to manage Go versions.github.com · read 4 Oct 2026
Security
The GitHub security page opened for the repository displays no security details in the accessible page content.github.com · read 4 Oct 2026

Alternatives to GVM

Every alternative, ranked