|Jul 26, 2023
|May 6, 2023
|May 5, 2023
|May 5, 2023
#2 in #multi-platform
134 downloads per month
Simple version manager like
nvm but for Go.
- Install, manage and switch between different versions of the Go SDK.
- Multi-platform compatible (Linux, macOS & Windows).
- Tries to be as simple and "out-of-the-way" as possible.
- Should be pretty fast.
- Uses the precompiled binaries instead of compiling the sources locally.
Simply download the latest binaries from the Releases Page.
Alternatively, you can also install goup using cargo.
cargo install goup
If you want the latest unreleased version from the
master branch, use the following command.
cargo install --git https://github.com/zekroTJA/goup
After that, run the following command to setup your environment to use goup to handle your Go versions.
goup env -p
This will add the required environment variables and
$PATH extension to your
Alternatively, if you just want to fiddle around with the tool, you can also just apply the environment to your current terminal session.
eval "$(goup env)"
How does it work?
goup uses the Go Repository on GitHub to query available versions using the
git ls-remote --tags command (it is planned to add a fallback which uses the GitHub API when
git is not available on the current system). This version list is then used to download selected versions from the official download server (https://go.dev/dl/). The downloaded SDKs are then directly un-zipped and un-packed while being downloaded into goup's worksapce directory, which is in the current users home directory at
$HOME/.local/goup. All downloaded SDK versions are then stored in
$HOME/.local/goup/installations. When selecting a specific installation version, the location in the installation directory is sym-linked to
$HOME/.local/goup/current and the selected version is stored in the file
Using the command
goup env -p, this will set the path of
$HOME/.local/goup/current/go as your
GOROOT environment variable and will add
$HOME/.local/goup/current/go/bin to the beginning of your
$PATH. This way, goup does not touch your local installation of Go and you cann roll back to before simply by removing the goup entries in your
.profile and deleting the
© 2023 Ringo Hoffmann.
Covered by the MIT License.