any-version-manager is both an executable binary that can be run, and a library that can be used in Rust programs.
Installing the avm executable
Assuming you have Rust/Cargo installed , run this command in a terminal:
cargo install any-version-manager
It will make the avm command available in your PATH if you've allowed the PATH to be modified when installing Rust . cargo uninstall any-version-manager uninstalls.
Adding any_version_manager library as a dependency
Run this command in a terminal, in your project's directory:
cargo add any-version-manager
To add it manually, edit your project's Cargo.toml file and add to the [dependencies] section:
any-version-manager = "0.0.3"
The any_version_manager library will be automatically available globally.
Read the any_version_manager library documentation .
Back to the crate overview .
Readme
avm
(Potentially) Any language Version Manager, a Command-Line Interface tool designed to manage multiple versions of development tools for potentially any programming language, maximizing code reuse.
Key designs
Version Management: Easily install, manage, and switch between different versions of various development tools.
Flexible Installation:
Configure mirrors using URL prefix replacement to adapt to different network environments.
Install tools from local archives for offline use. Use get-downinfo to get download details and install-local with the downloaded files and info for offline installation.
Tagging and Aliasing:
Each tool version/architecture is identified by a unique tag .
Create aliases for tags, providing fixed paths that can point to different underlying tool versions. This is useful for configuring your environment.
copy a tag to duplicate its contents, ideal for tools that modify themselves during execution.
Manual Environment Setup: avm does not automatically modify your system's environment variables. Use the path subcommand to retrieve the installation path for a specific tag or alias and manually configure your environment. Aliases provide stable paths that can point to different underlying tags.
Roadmap
Configuration
The configuration file path can be found by running avm config- path .
Format:
mirror : # optional: Define download mirrors
- from : https://original-prefix.com/a/b
to : https://mirror-prefix.com/c/d # e.g., https://original-prefix.com/a/b/e/f becomes https://mirror-prefix.com/c/d/e/f
# - ... more mirror rules
dataPath : /path/to/data # Optional: Directory to store downloaded tools. Uses an OS-specific default if omitted.
rustup :
path : /path/to/rustup # Optional: Path to rustup executable.