#version #version-manager #golang #java #nodejs #unified #installed

yanked uvm

Unified version manager, support Java, Golang, NodeJS

7 releases

0.1.0 Feb 16, 2024
0.1.0-alpha.10 Feb 17, 2024

#48 in #unified

MIT license

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

~32–52MB
~884K SLoC