# Install goenv@2 with Homebrew

Go version management. Version 2.2.42 via Homebrew; verified 2026-07-09.

## Install

```sh
sudo av install brew:goenv@2
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install goenv@2
```

  Evidence: local Homebrew formula metadata

## Package facts

- **Package key:** brew:goenv@2
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/goenv@2>
- **Version:** 2.2.42
- **Source summary:** Go version management
- **Homepage:** <https://github.com/go-nv/goenv>
- **Repository:** <https://github.com/go-nv/goenv>
- **Upstream docs:** <https://github.com/go-nv/goenv#readme>
- **License:** MIT
- **Source archive:** <https://github.com/go-nv/goenv/archive/refs/tags/2.2.42.tar.gz>
- **Last updated:** 2026-07-09T01:31:36Z
- **Generated:** 2026-07-25T07:20:51+00:00

## Executables

- go-build (cli)
- goenv-install (cli)
- goenv-uninstall (cli)
- go-build (alias)
- goenv-install (alias)
- goenv-uninstall (alias)

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-25
- Package-manager version: 2.2.42
- Package-manager updated: 2026-07-09
- Local data: ok
- Upstream repository: https://github.com/go-nv/goenv
- Upstream latest detected: 2.2.42 (current)
## Project history and usage

goenv is a Go toolchain version manager in the rbenv and pyenv family. Its shell-shim model lets a user pick a Go version globally, per project, or through an environment override.

The goenv@2 package represents the shell-script based line of the project. The project documentation describes v2 as the legacy branch kept for existing installations while a Go-based v3 line carries the rewrite.

### Project history

The repository preserves inherited history from the rbenv and pyenv lineage, and the README states that goenv was cloned from pyenv and modified for Go. Go-specific repository history appears in the mid-2010s, with releases and command documentation settling around Go version installation, shims, and per-directory version files.

The command set follows the familiar rbenv-style vocabulary: global, local, shell, install, uninstall, rehash, which, whence, and version. The environment documentation adds Go-specific behavior around GOROOT, GOPATH, go.mod based version detection, and auto-install behavior.

### Adoption history

goenv gained package-manager relevance because Go developers needed the same repeatable multi-version workflow that Ruby and Python users had through rbenv and pyenv. The README notes Homebrew installation for both the main package and the goenv@2 legacy formula.

The v2 line remains significant for CI and production setups that standardized on the shell implementation before the v3 rewrite. The README calls out AWS CodeBuild and existing production systems as examples of environments where v2 may remain in use during migration.

### How it is used

Users install Go versions with goenv install, select a global version by writing $GOENV_ROOT/version, and pin project directories with .go-version. The shell integration uses eval "$(goenv init -)" so shims resolve commands through the selected Go version.

The tool is most useful where multiple repositories require different Go versions, where CI images need a predictable Go bootstrap, or where package maintainers test against several Go releases without replacing the system Go.

### Why package nerds care

For package people, goenv is interesting as a direct transplant of the shim-based language-runtime manager pattern into the Go ecosystem. It shows how a package can be culturally important even when the underlying trick is old: predictable PATH shims plus tiny version files.

goenv@2 also matters as a versioned package split. Homebrew keeps the shell implementation available under a versioned formula while the upstream project moves through a rewrite, giving users a migration path without hiding the older behavior.

### Timeline

- 2016: Early goenv tags such as v20160417 and v20161028 appear in the repository.
- 2017: Repository history records Homebrew core formula availability documentation.
- 2022: Repository history includes 2.x maintenance releases.
- 2026: README documents v2 as a legacy line and v3 as a Go-based rewrite.

### Related projects

- pyenv provided the stated starting point for goenv's design and code lineage.
- rbenv is the older shim-based version-manager model that shaped pyenv and goenv.
- gvm is listed by the README as a different Go version-management approach modeled after nvm.

### Sources

- <https://github.com/go-nv/goenv>
- <https://github.com/go-nv/goenv#readme>
- <https://github.com/go-nv/goenv/blob/master/COMMANDS.md>
- <https://github.com/go-nv/goenv/blob/master/ENVIRONMENT_VARIABLES.md>


## Security Notes

No matching local secret-handling manifest was found for goenv@2. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: $GOENV_ROOT/version, default ~/.goenv/version (global Go version), ./.go-version (project-local Go version), ./.goenv-version (legacy project-local version file), $GOENV_RC_FILE, default $HOME/.goenvrc
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** goenv@2
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** yes
- **Disabled:** no
- **Keg Only:** yes
- **URL Keys:** stable


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [goenv](https://www.automicvault.com/pkg/brew/goenv/) - Package name indicates the same formula family.
- [anyzig](https://www.automicvault.com/pkg/brew/anyzig/) - Shares av.db curated category or tags: cli, developer-tools, toolchain, version-manager.
- [ghcup](https://www.automicvault.com/pkg/brew/ghcup/) - Shares av.db curated category or tags: cli, developer-tools, toolchain, version-manager.
- [gotags](https://www.automicvault.com/pkg/brew/gotags/) - Shares av.db curated category or tags: cli, developer-tools, go, golang.
- [gotests](https://www.automicvault.com/pkg/brew/gotests/) - Shares av.db curated category or tags: cli, developer-tools, go, golang.
- [gotestsum](https://www.automicvault.com/pkg/brew/gotestsum/) - Shares av.db curated category or tags: cli, developer-tools, go, golang.
- [gup](https://www.automicvault.com/pkg/brew/gup/) - Shares av.db curated category or tags: cli, developer-tools, go, golang.
- [gvp](https://www.automicvault.com/pkg/brew/gvp/) - Shares av.db curated category or tags: cli, developer-tools, go, golang.
- [node-build](https://www.automicvault.com/pkg/brew/node-build/) - Local metadata places this package in an adjacent workflow. Shared terms: build, cli, developer, developer-tools, install.
- [scalaenv](https://www.automicvault.com/pkg/brew/scalaenv/) - Local metadata places this package in an adjacent workflow. Shared terms: build, cli, developer, developer-tools, install.

## Combined YAML source

View the package source record on GitHub. [combined/goenv@2.yml](https://github.com/automic-vault/db/blob/main/combined/goenv@2.yml)


## Sources

- Nucleus package database
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- cross-ecosystem install command graph
