A version manager for all binaries.
Distribution is only available via cargo at the moment, but this project will be released as a single binary in the future.
bash
cargo install gvm
I couldn't find a solution like this that also worked on Windows.
gvm
via cargo.C:\Users\<user-name>\AppData\Local\gvm\gvm\bin
~/.local/share/gvm/bin
jsonc
{
"binaries": {
// these don't exist anywhere at the moment (again, proof of concept)
"deno": "http://localhost:8000/deno-1.3.1.json",
"dprint": "http://localhost:8000/dprint-0.9.0.json"
}
}
gvm install
gvm install
Adds the binaries in the current configuration file to the path then downloads & installs them.
gvm use <binary name> <version>
Uses the specified binary name and version globally.
The binary and version must have been previously installed.
gvm run [binary-name] [...args]
Runs the specified binary using the provided arguments based on the current configuration file.
Will download & install the binary if it hasn't been installed.
This is what [binary-name] [...args]
internally uses to run the correct binary.
jsonc
{
"binaries": {
// I don't know... something like this
"deno": {
"version": "^1.3.0",
"download": "http://localhost:8000/deno-1.3.1.json"
}
}
}
gvm install <url>
- To install a binary at the specified url.gvm use <url>
- To use a specific version of a binary globally via a url.npm run <script-name>
.gvm uninstall <binary name> <version>
or gvm uninstall <url>