Version Management for Ruby, Python, Node and Rust

booyaa profile image Mark Sta Ana Originally published at booyaa.wtf on ・1 min read

Here's a handy cheat sheet if you find yourself needing an exotic version of Ruby, Python, Node or Rust. Other version management tools are available for ruby, python and node, I just happen to like these ones.

Action Ruby Python Node Rust
List available versions to install rbenv install --list pyenv install --list nvm ls-remote n/a
Install specific version rbenv install 2.5.1 pyenv install 3.6.6 nvm install v10.9.0 rustup use nightly-2018-08-01
List locally installed versions rbenv versions pyenv versions nvm ls rustup show
Pin a project to a version rbenv local 2.5.1 pyenv local 3.6.6 echo v10.9.0 > .nvmrc ; nvm use rustup override nightly-2018-08-01
Set global version rbenv global 2.5.1 pyenv global 3.6.6 n/a rustup default nightly-2018-08-01

Python virtual environments

This assumes you've pinned your project to a specific version of python.

# create an virtual environment
pyenv virtualenv thingy
# activate!
pyenv activate thingy
# do your thang!
pip install pylint black pytest
# exit virtual environment
pyenv deactivate

Rust components (standard libraries, RLS, clippy)

Components will install for the active toolchain (stable, nightly, beta)

To install RLS: rustup component add rls-preview rust-analysis rust-src

To install clippy: rustup component add clippy-preview

Rust docs

Did you know you always get an off-line copy of the Rust documentation (language reference, standard library and the Rust book) suite when you install a toolchain? To open it for the active toolchain: rustup doc

Posted on by:

booyaa profile

Mark Sta Ana


He/Him/Dat Boi. SRE for an Agribiz SaaS Startup. Terrorizing Azure with Terraform. Rusticating Windows.


Editor guide

nvm is not crossplatform :(
nvm doesn't like yarn's global installs :(
afaik pnpm global installs are fine though.