vmr is a simple, cross-platform, and well-tested version manager for programming languages and tools. It is totally created for general purpose. You don't need any plugins, but just vm. Then everything can be managed.
Maybe you've already heard of fnm, sdkman, gvm, nvm, pyenv, phpenv, etc. However, none of them can manage multiple programming languages. Managers like asdf-vm support multiple languages, but only works on unix-like systems, and makes things look complicated. Therefore, vmr comes.
Note: cdr is a hook for command cd from shell or powershell. It's registered by vmr automatically. When you're changing directories using cdr, the locked version of sdk will be detected.
sdk | vmr | vfox |
---|---|---|
java(jdk) | ✅︎ | ✅︎ |
maven | ✅︎ | ✅︎ |
gradle | ✅︎ | ✅︎ |
kotlin | ✅︎ | ✅︎ |
scala | ✅︎ | ✅︎ |
groovy | ✅︎ | ✅︎ |
python | ✅︎ | ✅︎ |
pypy | ✅︎ | ❌︎ |
miniconda | ✅︎ | ❌︎ |
go | ✅︎ | ✅︎ |
node | ✅︎ | ✅︎ |
deno | ✅︎ | ✅︎ |
bun | ✅︎ | ❌︎ |
flutter(dart) | ✅︎ | ✅︎ |
.net | ✅︎ | ✅︎ |
zig | ✅︎ | ✅︎ |
zls | ✅︎ | ❌︎ |
php | ✅︎ | ✅︎ |
rust | ✅︎ | ❌︎ |
cmdline-tool(android) | ✅︎ | ❌︎ |
android SDKs | ✅︎ | ❌︎ |
vlang | ✅︎ | ❌︎ |
v-analyzer | ✅︎ | ❌︎ |
cygwin-installer | ✅︎ | ❌︎ |
msys2-installer | ✅︎ | ❌︎ |
julia | ✅︎ | ❌︎ |
odin | ✅︎ | ❌︎ |
typst | ✅︎ | ❌︎ |
typst-lsp | ✅︎ | ❌︎ |
typst-preview | ✅︎ | ❌︎ |
gleam | ✅︎ | ❌︎ |
git-for-windows | ✅︎ | ❌︎ |
neovim | ✅︎ | ❌︎ |
vscode | ✅︎ | ❌︎ |
protobuf(protoc) | ✅︎ | ❌︎ |
lazygit | ✅︎ | ❌︎ |
kubectl | ✅︎ | ❌︎ |
upx | ✅︎ | ❌︎ |
acast(asciinema) | ✅︎ | ❌︎ |
erlang(need compilation) | ❌︎ | ✅︎ |
elixir(need compilation) | ❌︎ | ✅︎ |
curl --proto '=https' --tlsv1.2 -sSf https://gvc.1710717.xyz/proxy/https://raw.githubusercontent.com/gvcgo/version-manager/main/scripts/install.sh | sh
powershell -nop -c "iex(New-Object Net.WebClient).DownloadString('https://gvc.1710717.xyz/proxy/https://raw.githubusercontent.com/gvcgo/version-manager/main/scripts/install.ps1')"
1. Download zip file from release.
2. Unzip it, run command "your/full/path/to/vmr install-self".
If you're a gopher, you can also complie the project by yourself. The main func is in ./cmd/vmr
update
vmr-update
Note: If you are installing vmr for the first time, please use source .zshrc or source .bashrc to refresh your envs. For windows users, just open a new powershell terminal, then vmr will be available.
Choose either proxy or reverse-proxy.
vmr set-proxy <http://localhost:port or socks5://localhost:port>
# reverse proxy <https://gvc.1710717.xyz/proxy/> is available for free.
vmr set-reverse-proxy https://gvc.1710717.xyz/proxy/
vmr use -mirror-in-china go@1.22.1
subcommand | args | desc |
---|---|---|
list | - | Shows what's supported. |
search | sdk-name | Shows available versions for a sdk. |
use | sdk-name@version | Installs/Swithes to the specific version of a sdk. |
local | sdk-name | Shows installed versions of a sdk. |
uninstall | sdk-name@version or sdk-name@all | Uninstalls versions for a sdk. |
clear-cache | sdk-name | Clears the cached files for a sdk. |
set-reverse-proxy | https://gvc.1710717.xyz/proxy/ | Sets a reverse-proxy for vm. |
set-proxy | http or socks5( scheme://host:port ) | Sets a local proxy for vm. |
env | --remove=false/true | Sets/Removes env manually. |
install-self | - | Installs vm. |
version | - | Shows version info of vm. |
completion | - | Generate the autocompletion script for for the specified shell.(bash, zsh, fish, or powershell) |
demo for MacOS
demo for Windows
demo for linux
$HOME/.vm/
Specified during installation of vmr. Use "$HOME/.vm" by default.
Note: If you are using vmr on Windows11, you need to enable the Developer Mode as vmr requires to create symbolic links. If you're on Windows10, and any creating-symbolic-links-failure occurrs, you can try vmr with Admin Privilege. To get envs take effect for windows, you may need to close the current powershell terminal and open a new one. Note that extFAT and FAT32 are not supported.
sudo command on Windows: gsudo. You can use vmr search gsudo to see what's available.
🛎️🚨 Virus Positive?: It's definitely a false positive. See here. If this occurrs, you can install vmr manually, and add vmr to be trusted.
Windows Security>> Virus & threat protection>> Virus & threat protection settings>> Exclusions
Thanks to the following people who have contributed to this project.
vmr is created to be a cross-platform command line tool. We will not try to include everything just like asdf-vm or its imitator vfox did, as that will greatly increase the complexity and also reduce the possibility of cross-platform. And most of the time, frequently used SDKs and tools have already been covered by vmr. vmr will not try to include SDKs that need to be compiled under a certain platform. Because each developer's development environment is different, it is impossible to ensure the completion of a compilation. So vmr will only use pre-built binaries for installations. If you have any SDKs or tools to recommand for version management, please raise an issue in Issues.
So, vmr is going to keep as lightweight, stable, and user-friendly as possible.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。