During deployment: "You are trying to install in deployment mode after changing your Gemfile"

Posted . Visible to the public.

While deploying an Ruby update to an old application these days, we encountered the following misleading error:

*** [err :: some-host.makandra.de] You are trying to install in deployment mode after changing
*** [err :: some-host.makandra.de] your Gemfile. Run `bundle install` elsewhere and add the
*** [err :: some-host.makandra.de] updated Gemfile.lock to version control.
*** [err :: some-host.makandra.de] 
*** [err :: some-host.makandra.de] You have deleted from the Gemfile:
*** [err :: some-host.makandra.de] *

We found out a newer version of bundler runs on the machines to be deployed to (see bundle -v, it was 2.0.1 in our case) while in the Gemfile.lock an old version of bundler is mentioned in the BUNDLED_WITH block:

BUNDLED WITH
   1.17.1

This broke during deployment while Capistrano tries to run bundle --deployment --quiet --without development test. On our development machines bundle install run successfully.

Fix this by making sure both sides use the same major versions of bundler (preferably 2.x).

Thomas Eisenbarth
Last edit
Besprechungs-PC
License
Source code in this card is licensed under the MIT License.
Posted by Thomas Eisenbarth to makandra dev (2019-04-10 14:29)