Giter Site home page Giter Site logo

spritualkb / version-manager Goto Github PK

View Code? Open in Web Editor NEW

This project forked from gvcgo/version-manager

0.0 0.0 0.0 339 KB

πŸ”₯πŸ”₯πŸ”₯ A general version manager for multiple sdks, such as Java, Go, Node.js, Deno, Bun, .Net, Python, PyPy, PHP, Rust, Kotlin, Scala, Groovy, Flutter, Julia, Zig, V, Typst, Android SDKs. A much better choice than vfox, fnm, gvm, etc.

Home Page: https://github.com/gvcgo/version-manager

License: MIT License

Shell 1.81% Go 96.73% PowerShell 1.46%

version-manager's Introduction

Logo

Go Report Card GitHub License GitHub Release PRs Card Issues Card Versions Repo Card

δΈ­ζ–‡ | En


version-manager(vmr)

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.


features

  • Installs or uninstalls versions of sdk.
  • Swithes between versions of sdk.
  • Using a version only in current terminal session is supported. See with command vmr use -h.
  • Handles envs.
  • Friendly to VSCoders or Neovimers.
  • Downloads files blazingly fastπŸš€πŸš€πŸš€ with multi-threads. See with command vmr use -h.
  • Auto-completions for shells. See with command vmr completion -h.
  • Generates command "vmr use sdk-name@version" automatically using selected item from version list, and add the command to clipboard for later usage.
  • Android development with Flutter and VSCode. No Android Studio is needed.
  • No plugins needed.
  • More stable.

vmr versus vfox

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 βœ…οΈŽ ❌︎
typst βœ…οΈŽ ❌︎
typst-lsp βœ…οΈŽ ❌︎
typst-preview βœ…οΈŽ ❌︎
gleam βœ…οΈŽ ❌︎
git-for-windows βœ…οΈŽ ❌︎
neovim βœ…οΈŽ ❌︎
vscode βœ…οΈŽ ❌︎
protobuf(protoc) βœ…οΈŽ ❌︎
lazygit βœ…οΈŽ ❌︎
kubectl βœ…οΈŽ ❌︎
upx βœ…οΈŽ ❌︎
acast(asciinema) βœ…οΈŽ ❌︎
erlang(need compilation) ❌︎ βœ…οΈŽ
elixir(need compilation) ❌︎ βœ…οΈŽ

Installation/Update

  • for MacOS/Linux(run the command below in terminal)
curl --proto '=https' --tlsv1.2 -sSf https://gvc.1710717.xyz/proxy/https://raw.githubusercontent.com/gvcgo/version-manager/main/scripts/install.sh | sh
  • for Windows(run the command below in powershell) (See tips in For Windows)
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')"
  • Manual installation
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

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.


How to set a proxy?

Choose either proxy or reverse-proxy.

  • proxy
vmr set-proxy <http://localhost:port or socks5://localhost:port>
  • reverse-proxy
# reverse proxy <https://gvc.1710717.xyz/proxy/> is available for free.
vmr set-reverse-proxy https://gvc.1710717.xyz/proxy/
  • enable downloading from mirror sites in China.
vmr use -mirror-in-china [email protected]

Subcommands

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

demo for Windows

demo

demo for linux

demo


Related dirs

  • vmr installation dir
$HOME/.vm/
  • application installation dir

Specified during installation of vmr. Use "$HOME/.vm" by default. installation


For Windows

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.

  • How can I add vmr to windows 'Virus & threat protection Exclusions?'
Windows Security>> Virus & threat protection>> Virus & threat protection settings>> Exclusions

Contributors

Thanks to the following people who have contributed to this project.


Supplementary

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.


Todo-List

  • To manage package repo mirror sites in China.

version-manager's People

Contributors

moqsien avatar eryajf avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.