Ruby on Rails

How to install and bundle your rails application with a specific bundler version

This minipost will guide you on how to install a new version of bundler, how to bundle a rails application with a specific bundler version and how to update bundler on a project that is already bundled with another version.

How to install and uninstall a specific bundler version to the development machine

Before we start, read this to avoid installing bundler documentation for new versions. In order to get a list all the already installed versions of bundler in your system, type:

$ gem list bundler

A typical output, depending on the bundler versions you have already installed, could be the following:

*** LOCAL GEMS ***

bundler (1.17.1, 1.16.6, 1.16.5)

Now, let's say we want to install version 2.0.1, type:

$ gem install bundler -v 2.0.1
Fetching: bundler-2.0.1.gem (100%)
Successfully installed bundler-2.0.1
1 gem installed

To uninstal this specific version, type:

$ gem uninstall bundler -v 2.0.1

How to bundle an application with a specific bundler version

To bundle an application with a specific bundler version, type:

$ bundle _2.0.1_ install

If you try the above command on an existing project that was bundled with another bundler version specified in Gemfile.lock, you might get an error similar to the following:

Traceback (most recent call last):
    2: from /home/devmachine/.rbenv/versions/2.5.1/bin/bundle:23:in `<main>'
    1: from /home/devmachine/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:308:in `activate_bin_path'
/home/devmachine/.rbenv/versions/2.5.1/lib/ruby/2.5.0/rubygems.rb:289:in `find_spec_for_exe': Could not find 'bundler' (1.17.1) required by your /home/devmachine/tested/tested_two/Gemfile.lock. (Gem::GemNotFoundException)
To update to the lastest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:1.17.1`

In this case just remove from your Gemfile.lock the version of bundler that appears on this part:

BUNDLED WITH
   1.17.1

(just remove only the version you have there, only 1.17.1, leave the BUNDLED WITH part)

And then run again:

$ bundle _2.0.1_ install

You will see that your Gemfile.lock was altered with the new bundler version, that will be used from now on at your Rails application.