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

Viewed 66371

I'm pretty new to bundler and capistrano, and I'm trying to use them together. When I try to deploy, I get the message:

You are trying to install in deployment mode after changing your Gemfile. Run `bundle install' elsewhere and add the updated Gemfile.lock to version control.

I don't know how to satisfy the system that's complaining, and I don't understand why the complaint is coming up because I read in the doc:

If a Gemfile.lock does exist, and you have updated your Gemfile(5), bundler will use the dependencies in the Gemfile.lock for all gems that you did not update, but will re-resolve the dependencies of gems that you did update. You can find more information about this update process below under CONSERVATIVE UPDATING.

I interpret that to mean that the Bundler can handle the fact that my Gemfile is not whatever it expected. Any help?

Specs: Ruby 1.9.3, Rails 3.2.3, Capistrano 2.12.0, Bundler 1.1.4, Windows 7, deploying to a Posix machine.

Edit: My Gemfile includes logic blocks like the following:

unless RbConfig::CONFIG['host_os'] === 'mingw32'
  # gem 'a' ...
end
20 Answers

I don't care. This is what I did. It fixed it.

rm -rf .bundle 
rm -rf Gemfile.lock
bundle install
rm -fr .bundle

Fixed the problem for me.

After this command, you can do your normal bundle install again:

bundle install --no-deployment

This issue can be related to submodules pointing to old versions of code. For me, I resolved this issue by updating my submodules

If you have submodules, try running:

git submodule update --init

bundle install

I read a dozen solutions on different resources but didn't find exactly what could help me in this situation

So I did find a solution. Exactly saying i read the error message attentively and there was a sollution: Run bundle install elsewhere. "Elsewhere" was my Cloud9 where i developed my app. So my steps

  1. copy Gemfile and Gemfile.lock from server to local machine with rsync command
  2. insert these two files into my RoR project (i used Cloud9)
  3. open Gemfile and make changes that i want. In my case i added gem 'thin'
  4. in terminal cd to my app on Cloud9 and run bundle install. in this case you will have a changed version of Gemfile.lock
  5. copy new Gemfile and Gemfile.lock on server using rsync
  6. cd to my app folder and again run bundle install --deployment --without development test DONE! Wish GOOD luck for all!

The error message for the command bundle install in windows 10 (rails v-7) was like

You are trying to install in deployment mode after changing
your Gemfile. Run `bundle install` elsewhere and add the
If this is a development machine, remove the C:/Users/friends/Gemfile freeze
by running `bundle config unset deployment`.

The dependencies in your gemfile changed

You have added to the Gemfile:
* pg

You have deleted from the Gemfile:
* sqlite3 (~> 1.4)

So I did exactly the error message asked me to do. Ran the following command

bundle config unset deployment

And then I again ran `bundle install and then it worked

Related