Tutorial

How To Install Ruby on Rails with rbenv on macOS

Updated on December 1, 2022
Default avatar

By Timothy Nolan

Senior Technical Editor

How To Install Ruby on Rails with rbenv on macOS

Introduction

Ruby on Rails is a popular application stack for developers looking to create sites and web apps. The Ruby programming language, combined with the Rails development framework, makes app development quick and efficient.

One way to install Ruby and Rails is with the command-line tool rbenv. Using rbenv will provide you with a well-controlled and robust environment for developing your Ruby on Rails applications, allowing you to easily switch your working version of Ruby as needed.

rbenv provides support for specifying application-specific versions of Ruby, lets you change the global Ruby for each user, and allows you to use an environment variable to override the Ruby version.

In this tutorial, you will use rbenv to install and set up Ruby on Rails on your local macOS machine.

Prerequisites

To follow this tutorial, you will need:

Step 1 — Installing rbenv

In this step, you will install rbenv and make sure that it starts automatically at boot. To do this on macOS, this tutorial will use the package manager Homebrew.

To download the rbenv package with Homebrew, run the following command:

  1. brew install rbenv

This will install rbenv and the [ruby-build] (https://github.com/rbenv/ruby-build) plugin. This plugin adds therbenv install command, which streamlines the installation process for new versions of Ruby. This may install several other dependencies and take some time.

Next, you’ll add the command eval "$(rbenv init -)" to your ~/.bash_profile file to make rbenv load automatically when you open up the Terminal. To do this, open your .bash_profile in nano or your favorite text editor:

  1. nano .bash_profile

Add the following line to the file:

~/.bash_profile
eval "$(rbenv init -)"

Save and quit the file.

Next, apply the changes you made to your ~/.bash_profile file to your current shell session:

  1. source ~/.bash_profile

To verify that rbenv is set up properly, use the type command, which will display more information about the rbenv command:

  1. type rbenv

Your terminal window will display the following:

Output
rbenv is a function rbenv () { local command; command="${1:-}"; if [ "$#" -gt 0 ]; then shift; fi; case "$command" in rehash | shell) eval "$(rbenv "sh-$command" "$@")" ;; *) command rbenv "$command" "$@" ;; esac }

At this point, you have both rbenv and ruby-build installed on your machine. This will allow you to install Ruby from the command line in the next step.

Step 2 — Installing Ruby

With the ruby-build plugin now installed, you can install any version of Ruby you may need through a single command. In this step, you will choose a version of Ruby, install it on your machine, and then verify the installation.

First, use the -l flag to list the available versions of Ruby. Note that unlisted, recent minor versions may also be available. For example, if the output of this command lists Ruby 3.0.5, you will likely also be able to install 3.0.4.

  1. rbenv install -l
Output
2.6.10 2.7.6 3.0.4 3.1.2 jruby-9.3.6.0 mruby-3.1.0 picoruby-3.0.0 rbx-5.0 truffleruby-22.1.0 truffleruby+graalvm-22.1.0

The output of that command will be a long list of versions that you can choose to install.

For this tutorial, we’ll install Ruby 3.1.2:

  1. rbenv install 3.1.2

Installing Ruby can be a lengthy process, so be prepared for the installation to take some time to complete.

Once it’s done installing, set it as your default version of Ruby with the global sub-command:

  1. rbenv global 3.1.2

Verify that Ruby was properly installed by checking its version number:

  1. ruby -v

Your output will look something like this:

Output
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-darwin21]

To install and use a different version of Ruby, run the rbenv commands with a different version number, such as rbenv install 2.7.6 and rbenv global 2.7.6.

You now have one version of Ruby installed and have set your default Ruby version. Next, you will set yourself up to work with Ruby packages and libraries, or gems, which will then allow you to install Rails.

Step 3 — Working with Gems

Gems are packages of Ruby libraries and programs that can be distributed throughout the Ruby ecosystem. You use the gem command to manage these gems. In this step, you will configure the gem command to prepare for the Rails installation.

When you install a gem, the installation process generates local documentation. This can add a significant amount of time to each gem’s installation process, so you can turn off local documentation generation by creating a file called ~/.gemrc which contains a configuration setting to turn off this feature:

  1. echo "gem: --no-document" > ~/.gemrc

With that done, use the gem command to install Bundler, a tool that manages gem dependencies for projects. This is needed for Rails to work correctly:

  1. gem install bundler

You’ll see output like this:

Output
Fetching: bundler-2.3.18.gem Successfully installed bundler-2.3.18 1 gem installed

You can use the gem env command to learn more about the environment and configuration of gems. To see the location of installed gems, use the home argument, like this:

  1. gem env home

You’ll see output similar to this:

/Users/sammy/.rbenv/versions/3.1.2/lib/ruby/gems/3.1.0

Now that you have set up and explored your gem workflow, you are free to install Rails.

Step 4 — Installing Rails

To install Rails, use the gem install command:

  1. gem install rails

The gem command installs the gem you specify, as well as every dependency. Rails is a complex web development framework and has many dependencies, so the process will take some time to complete. Eventually you’ll see a message stating that Rails is installed, along with its dependencies:

Output
... Successfully installed rails-7.0.3.1 35 gems installed

Note: If you would like to install a different version of Rails, you can list the valid versions of Rails by doing a search, which will output a long list of possible versions. You can then install a specific version, such as 4.2.7, using the -v flag:

  1. gem search '^rails$' --all
  2. gem install rails -v 4.2.7

rbenv works by creating a directory of shims, or libraries that intercept calls and change or redirect them. In this case, shims point Ruby commands to the files used by the Ruby version that’s currently enabled. Through the rehash sub-command, rbenv maintains shims in that directory to match every Ruby command across every installed version of Ruby on your server. Whenever you install a new version of Ruby or a gem that provides commands, such as Rails, you should use rehash.

To rehash the directory of shims, run the following command:

  1. rbenv rehash

Verify your installation of Rails by printing its version with this command:

  1. rails -v

You will see the version of Rails that was installed:

Output
Rails 7.0.3.1

With Rails successfully installed, you can begin testing your Ruby on Rails installation and start to develop web applications. In the next step, you will learn how to update and uninstall rbenv and Ruby.

Step 5 — Updating and Uninstalling rbenv and Ruby

When maintaining projects, it is useful to know how to update and uninstall when the need arises. In this step, you will upgrade rbenv, then uninstall Ruby and rbenv from your machine.

You can upgrade rbenv and ruby-build using Homebrew by running the following command:

  1. brew upgrade rbenv ruby-build

If rbenv or ruby-build need to be updated, Homebrew will do it for you automatically. If your set up is already up to date, you will get output similar to the following:

Output
Warning: rbenv 1.2.0 already installed Warning: ruby-build 20220713 already installed

This will ensure that we are using the most up-to-date version of rbenv available.

As you download additional versions of Ruby, you may accumulate more versions than you would like in your ~/.rbenv/versions directory. Using the ruby-build plugin’s uninstall subcommand, you can remove these previous versions.

For example, run the following to uninstall Ruby version 2.1.3:

  1. rbenv uninstall 2.1.3

With the rbenv uninstall command you can clean up old versions of Ruby so that you do not have more installed than you are currently using.

If you’ve decided you no longer want to use rbenv, you can remove it from your system.

To do this, first open your ~/.bash_profile file in your editor:

  1. nano ~/.bash_profile

Find and remove the following line from the file to stop rbenv from starting when you open the Terminal:

~/.bash_profile
...
eval "$(rbenv init -)"

Once you have deleted this line, save the file and exit the editor.

Run the following command to apply the changes to your shell:

  1. source ~/.bash_profile

Next, remove rbenv and all installed Ruby versions with this command:

  1. rm -rf `rbenv root`

Finally, remove the rbenv package itself with Homebrew:

  1. brew uninstall rbenv

Check the rbenv version to make sure that it has been uninstalled:

  1. rbenv -v

You will get the following output:

Output
-bash: /usr/local/bin/rbenv: No such file or directory

This means that you have successfully removed rbenv from your machine.

Conclusion

In this tutorial you installed Ruby on Rails with rbenv on macOS. From here, you can learn more about coding in Ruby with our How To Code in Ruby series. You can also explore how to use Ruby on Rails with PostgreSQL rather than its default sqlite3 database, which provides more scalability, centralization, and stability for your applications.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors
Default avatar

Senior Technical Editor

Editor at DigitalOcean, fiction writer and podcaster elsewhere, always searching for the next good nautical pun!


Default avatar

Senior Technical Editor

Editor at DigitalOcean, fiction writer and podcaster elsewhere, always searching for the next good nautical pun!


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
1 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Very helpful, I tried a few other things unsuccessfully, this worked perfectly!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel