7 releases
0.1.0 |
|
---|---|
0.1.0-alpha.10 | Feb 17, 2024 |
#51 in #unified
91 downloads per month
160KB
4.5K
SLoC
UVM
uvm(unified version manager) is a command-line tool for Linux, Windows and MacOS, it aims to provide convenient methods to manage multiple versions of development kit for various progamming languages.
Install
Features
Golang
- list all released versions.
- list local installed versions.
- install a released version.
- use an installed version.
- create a virtual environment(venv) in a workspace.
- uninstall an installed version.
Node
- list all released versions.
- list local installed versions.
- install a released version.
- use an installed version.
- create a virtual environment(venv) in a workspace.
- uninstall an installed version.
Java
- support OpenJDK and Amazon Corretto.
- list all released versions.
- list local installed versions.
- install a released version.
- use an installed version.
- create a virtual environment(venv) in a workspace.
- uninstall an installed version.
Usage
update uvm to latest version:
$ uvm update
list all released versions of Golang:
$ uvm go list
list installed versions of Golang:
$ uvm go list --local
1.20.1
* 1.20.10
1.21.6
install Golang 1.21.6:
$ uvm go install -v 1.21.6
switch default global Golang version to 1.21.6:
$ uvm go use -v 1.21.6
switch default global Golang version to 1.21.6:
$ uvm go use -v 1.21.6
create a virtual environment with Golang 1.20.1 in current folder:
$ uvm go venv -v 1.20.1
by default this will create a folder named .venv
activiate virtual environment:
$ source ./.venv/activiate.sh
(go)$
deactiviate virtual environment:
$ source ./.venv/deactiviate.sh
$
Node has similar commands.
Java is a little different, each command must specify vendor with --vendor
, currently supported vendors includs openjdk, corretto.
for example, install Java 20 from Amazon Corretto:
$ uvm java install -v 20 --vendor corretto
TODO
- configuration for uvm
- support mirrors
- support more languages
- show progress while downloading files
- support more shells for venv
Acknowledgement
Thanks to tools like nvm, n, rvm, g, using-virtual-environments for providing valuable ideas.
Dependencies
~33–51MB
~888K SLoC