GVM is a programming language version manager, like `nvm`, but extensible to support all programming languages.
Installation ❘ Features ❘ Languages ❘ Quick-Start ❘ License
English | 简体中文
A tool to manage multiple versions of programming languages.
Usage:
gvm [command]
Available Commands:
completion Generate the autocompletion script for the specified shell
current Show Current version of a language
help Help about any command
install Install a specific version of a language
ls List installed versions of language
ls-remote List remote versions of language
ui Run in the terminal UI
uninstall Uninstall a specific version of a language
use Set default versions of language
Flags:
-d, --debug debug mode
-h, --help help for gvm
Use "gvm [command] --help" for more information about a command.
- Manage multiple versions of various programming languages (e.g., Go, Node, Java, etc.; more coming soon)
- Easy installation, uninstallation, and switching between language versions
- List both locally installed and remotely available versions for each language
- Operate via both Command Line Interface (CLI) and Terminal User Interface (TUI)
- Set default versions for each language
- Shell autocompletion for faster command input
- Cross-platform support, with Docker images and binary releases
- Extensible architecture—easy to add support for new languages
- Golang
- Node
- Java
- Python (test)
- C#
- C++/C
- Ruby
- Rust
docker pull toodo/gvm
docker run -it -e TERM=xterm toodo/gvm ui
🔔 Note: The above example runs the gvm ui
command in an interactive terminal. To run gvm
against other compatible servers, or to enter the container interactively for debugging or inspection, use:
docker run -it --entrypoint=/bin/sh toodo/gvm
Download the appropriate version for your platform from the releases page.
- compile glctl and place it in _output/
git clone https://github.com/toodofun/gvm.git
cd gvm
make build
gvm <command> [flags]
- Run terminal UI
gvm ui
- Command Line Interface (CLI)
ls-remote <lang>
: List remote versions of a languagels <lang>
: List installed versions of a languageinstall <lang> <version>
: Install a specific version of a languageuninstall <lang> <version>
: Uninstall a specific version of a languageuse <lang> <version>
: Set the default version of a languagecurrent <lang>
: Show the current version of a language
- Terminal User Interface (TUI)
ui
: Run in terminal interface
Grateful acknowledgement to JetBrains for supporting this project through their Open Source License Program and providing exceptional development tools.
- This cli tool is still in the development stage, and most of the programming languages are not completed. Everyone contribute is very much needed. 🙋♂️
If you have an issue: report it on the issue tracker
Contributions are always welcome. For more information, check out the contributing guide
Licensed under the Apache License 2.0. See LICENSE for details.