If you want to install multiple versions of node.js or Ruby on your machine, there are mostly tools available written in Shell (nvm, rvm, rbenv). On the one hand that's nice because it's easy to install on Unix machines, but on the other hand it's not usable on Windows machines and Shell code is not easy to understand. At least for me. Especially the latter reason is important for me. It is not that easy to find a person who can maintain Shell code and also it's not that easy to figure out where to look when something goes wrong. Since Rust has become stable, I took the opportunity and began to write a replacement tool. It's called avm as abbreviation for "All version manager". Right now it manages:
- ✅ node.js
- ✅ Ruby
The other advantage is since Rust runs on many platforms, there's also the possibility to run avm on machines without Bash e.g. Windows.
If you use Cargo 0.6.0 (ships with Rust 1.5) you can install avm via:
$ cargo install avmAfter installation you need to add avm to your PATH variable as described in After Installation.
- zlib development packages (Ubuntu:
zlib1g-dev) - readline support (Ubuntu:
libreadline6libreadline6-dev) - C Compiler (Ubuntu:
build-essential) - OpenSSL (Ubuntu:
libssl-dev, RHEL:openssl-dev, Mac:openssl)
By default, avm uses /usr/include/openssl as a
lookup path. If you want to use a custom path, for example to link
against an OpenSSL version installed via homebrew, export OPENSSL_INCLUDE_DIR:
export OPENSSL_INCLUDE_DIR="$(brew --prefix openssl)/include"After installation finished, you need to make sure that avm is in your PATH.
For that you need to append the following line to either ~/.zshrc or ~/.bash_profile:
export PATH=~/.avm/:~/.avm/node/bin:~/.avm/ruby/bin:$PATHRight now, it is possible to run avm on the major Linux distributions and Mac OS X. There is no support for Windows right now. See #33 for details.
See https://github.com/schultyy/avm/blob/master/upgrade_notice.md for instructions.
Install a new node version:
$ avm install node 4.1.2Please note, that right now avm installs precompiled versions of Node.js. There is no supported yet for installing from source.
Use 4.1.2 by default:
$ avm use node 4.1.2Use your system node version:
$ avm use node systemList all installed versions:
$ avm node lsUninstall a version:
$ avm uninstall node 4.1.2Select the node version based on the package.json in the current directory:
$ avm autoselect nodeNote that this depends on the engines property set in the package.json. If engines
specifies a node version < 4.x, then it checks for strict equality only. It does not support any
modifiers like ^ or ranges for these versions.
Install a new Ruby version:
$ avm install ruby 2.3.0Please note, that it installs from source only. It grabs the source tarballs from ruby-lang.org. Right now it installs versions only which do not have a -pxyz suffix in their url.
Use 2.3.0 by default:
$ avm use ruby 2.3.0List all installed versions:
$ avm ls rubyUninstall a version:
$ avm uninstall ruby 4.1.2
from https://github.com/schultyy/avm
No comments:
Post a Comment