Skip to content

Instantly share code, notes, and snippets.

@ritaly
Forked from jbinto/ruby-versions-chruby.md
Created January 21, 2019 11:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ritaly/3f157ed95f3a3b08b387851d4ff11868 to your computer and use it in GitHub Desktop.
Save ritaly/3f157ed95f3a3b08b387851d4ff11868 to your computer and use it in GitHub Desktop.
Dealing with Ruby versions - chruby

Dealing with Ruby versions - chruby

Every time I sit down to code, it seems like a new Ruby version is available.

When I first learned ruby I used rvm on my Mac. In production on linux, I use rbenv, likely due to its Capistrano integration.

When I set up my current machine, I found rvm had fallen out of fashion in favour of something called chruby.

Install new ruby

Install ruby-install and chruby from Homebrew, if not already done.

brew install chruby --HEAD
brew install ruby-install --HEAD

Go to https://www.ruby-lang.org/en/ and find out the newest version. At the time of writing, that is 2.2.2.

ruby-install ruby 2.2.2

Remove old Rubies

Remove older Ruby versions:

ls -la ~/.rubies
rm -rf ~/.rubies/ruby-2.1.5
rm -rf ~/.rubies/ruby-2.2.1

Housekeeping

Restart your shell, so chruby can see other versions.

Update .bashrc (read: .zshrc, or .common_env in my case) to execute the correct chruby command.

Also update .powconfig if using Pow.

chruby 2.2.2

Gems/bundler

Bundler will not be installed, and rubygems may be out of date:

$ bundle
zsh: command not found: bundle

$ gem --version
2.4.5

Upgrade rubygems, and install bundler.

gem update --system
gem install bundler

"Gemsets"

chruby doesn't have a concept of "gemsets". This is not like Python's virtualenv where each project is isolated from one another.

Every project will need to be re-bundled. Gems are installed locally, for the current chruby version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment