can't activate bcrypt-ruby (~> 3.0.0), already activated bcrypt-ruby-3.1.1. Make sure all dependencies are added to Gemfile

bcrypt-ruby, ruby-on-rails-4

Solution

In your gemfile, you aren't specifying the version, so you're installing the latest version of bcrypt-ruby which is 3.1.1, but what you need is any version from 3.0.0 to 3.0.9. You can get this by adding a version constraint like so:

gem 'bcrypt-ruby', '~> 3.0.0'

The version requirement comes from ActiveModel's SecurePassword which currently has an explicit dependency on bcrypt-ruby (~> 3.0.0). You can see the dependency on github. When this code is executed, it looks for a version 3.0.0 through 3.0.9 which is not installed and so it throws an error.

This dependency was just updated to '~> 3.1.0' a couple of days ago, but has not made its way into the rails activemodel gem yet. When it does, you'll have to update your version accordingly. Here's the commit if you're curious.

Problem

I have Rails 4.0.0 app. When I run bundle install command there is no problem. This is my GemFile. ``` source 'https://rubygems.org' # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '4.0.0' gem 'mysql2' # Use SCSS for stylesheets gem 'sass-rails', '~> 4.0.0.rc2' # Use Uglifier as compressor for JavaScript assets gem 'uglifier', '>= 1.3.0' # Use CoffeeScript for .js.coffee assets and views gem 'coffee-rails', '~> 4.0.0' # See https://github.com/sstephenson/execjs#readme for more supported runtimes # gem 'therubyracer', platforms: :ruby # Use jquery as the JavaScript library gem 'jquery-rails' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem 'turbolinks' # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder gem 'jbuilder', '~> 1.2' group :doc do # bundle exec rake doc:rails generates the API under doc/api. gem 'sdoc', require: false end # Use ActiveModel has_secure_password # gem 'bcrypt-ruby', '~> 3.0.0' # Use unicorn as the app server # gem 'unicorn' # Use Capistrano for deployment # gem 'capistrano', group: :development # Use debugger # gem 'debugger', group: [:development, :test] gem 'pry' gem 'devise', git: "https://github.com/plataformatec/devise.git", branch: 'rails4' gem 'bcrypt-ruby' gem 'simple_form' gem "therubyracer" gem "less-rails" #Sprockets (what Rails 3.1 uses for its asset pipeline) supports LESS gem "twitter-bootstrap-rails" gem 'simple_form' gem 'jquery-ui-rails' group :development, :test do gem 'rspec-rails', '~> 2.0' gem 'cucumber-rails', :git => "https://github.com/cucumber/cucumber-rails.git", :branch => "master_rails4_test", :require => false gem 'database_cleaner' gem 'factory_girl' gem "factory_girl_rails", "~> 4.0" gem "database_cleaner" gem "awesome_print" end ``` And this is my Gemfile.lock ``` GIT remote: https://github.com/cucumber/cucumber-rails.git revision: 5fa9da37ab05213d2f46029ea476e09104ffe281 branch: master_rails4_test specs: cucumber-rails (1.3.1) capybara (>= 1.1.2) cucumber (>= 1.2.0) nokogiri (>= 1.5.0) rails (>= 3.0.0) GIT remote: https://github.com/plataformatec/devise.git revision: 6b5988d756d780903bf8c9ccb3e2b3b724ccebe8 branch: rails4 specs: devise (2.2.4) bcrypt-ruby (~> 3.0) orm_adapter (~> 0.1) railties (>= 3.2.6, < 5) warden (~> 1.2.1) GEM remote: https://rubygems.org/ specs: actionmailer (4.0.0) actionpack (= 4.0.0) mail (~> 2.5.3) actionpack (4.0.0) activesupport (= 4.0.0) builder (~> 3.1.0) erubis (~> 2.7.0) rack (~> 1.5.2) rack-test (~> 0.6.2) activemodel (4.0.0) activesupport (= 4.0.0) builder (~> 3.1.0) activerecord (4.0.0) activemodel (= 4.0.0) activerecord-deprecated_finders (~> 1.0.2) activesupport (= 4.0.0) arel (~> 4.0.0) activerecord-deprecated_finders (1.0.3) activesupport (4.0.0) i18n (~> 0.6, >= 0.6.4) minitest (~> 4.2) multi_json (~> 1.3) thread_safe (~> 0.1) tzinfo (~> 0.3.37) arel (4.0.0) atomic (1.1.10) awesome_print (1.1.0) bcrypt-ruby (3.1.1) builder (3.1.4) capybara (2.1.0) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) xpath (~> 2.0) coderay (1.0.9) coffee-rails (4.0.0) coffee-script (>= 2.2.0) railties (>= 4.0.0.beta, < 5.0) coffee-script (2.2.0) coffee-script-source execjs coffee-script-source (1.6.3) commonjs (0.2.6) cucumber (1.3.4) builder (>= 2.1.2) diff-lcs (>= 1.1.3) gherkin (~> 2.12.0) multi_json (~> 1.7.5) multi_test (~> 0.0.1) database_cleaner (1.0.1) diff-lcs (1.2.4) erubis (2.7.0) execjs (1.4.0) multi_json (~> 1.0) factory_girl (4.2.0) activesupport (>= 3.0.0) factory_girl_rails (4.2.1) factory_girl (~> 4.2.0) railties (>= 3.0.0) gherkin (2.12.0) multi_json (~> 1.3) hike (1.2.3) i18n (0.6.4) jbuilder (1.4.2) activesupport (>= 3.0.0) multi_json (>= 1.2.0) jquery-rails (3.0.4) railties (>= 3.0, < 5.0) thor (>= 0.14, < 2.0) jquery-ui-rails (4.0.3) jquery-rails railties (>= 3.1.0) json (1.8.0) less (2.3.2) commonjs (~> 0.2.6) less-rails (2.3.3) actionpack (>= 3.1) less (~> 2.3.1) libv8 (3.11.8.17) mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) method_source (0.8.1) mime-types (1.23) mini_portile (0.5.1) minitest (4.7.5) multi_json (1.7.7) multi_test (0.0.1) mysql2 (0.3.13) nokogiri (1.6.0) mini_portile (~> 0.5.0) orm_adapter (0.4.0) polyglot (0.3.3) pry (0.9.12.2) coderay (~> 1.0.5) method_source (~> 0.8) slop (~> 3.4) rack (1.5.2) rack-test (0.6.2) rack (>= 1.0) rails (4.0.0) actionmailer (= 4.0.0) actionpack (= 4.0.0) activerecord (= 4.0.0) activesupport (= 4.0.0) bundler (>= 1.3.0, < 2.0) railties (= 4.0.0) sprockets-rails (~> 2.0.0) railties (4.0.0) actionpack (= 4.0.0) activesupport (= 4.0.0) rake (>= 0.8.7) thor (>= 0.18.1, < 2.0) rake (10.1.0) rdoc (3.12.2) json (~> 1.4) ref (1.0.5) rspec-core (2.14.3) rspec-expectations (2.14.0) diff-lcs (>= 1.1.3, < 2.0) rspec-mocks (2.14.1) rspec-rails (2.14.0) actionpack (>= 3.0) activesupport (>= 3.0) railties (>= 3.0) rspec-core (~> 2.14.0) rspec-expectations (~> 2.14.0) rspec-mocks (~> 2.14.0) sass (3.2.9) sass-rails (4.0.0) railties (>= 4.0.0.beta, < 5.0) sass (>= 3.1.10) sprockets-rails (~> 2.0.0) sdoc (0.3.20) json (>= 1.1.3) rdoc (~> 3.10) simple_form (1.4.1) slop (3.4.5) sprockets (2.10.0) hike (~> 1.2) multi_json (~> 1.0) rack (~> 1.0) tilt (~> 1.1, != 1.3.0) sprockets-rails (2.0.0) actionpack (>= 3.0) activesupport (>= 3.0) sprockets (~> 2.8) therubyracer (0.11.4) libv8 (~> 3.11.8.12) ref thor (0.18.1) thread_safe (0.1.0) atomic tilt (1.4.1) treetop (1.4.14) polyglot polyglot (>= 0.3.1) turbolinks (1.3.0) coffee-rails twitter-bootstrap-rails (2.2.7) actionpack (>= 3.1) execjs rails (>= 3.1) railties (>= 3.1) tzinfo (0.3.37) uglifier (2.1.2) execjs (>= 0.3.0) multi_json (~> 1.0, >= 1.0.2) warden (1.2.3) rack (>= 1.0) xpath (2.0.0) nokogiri (~> 1.3) PLATFORMS ruby DEPENDENCIES awesome_print bcrypt-ruby coffee-rails (~> 4.0.0) cucumber-rails! database_cleaner devise! factory_girl factory_girl_rails (~> 4.0) jbuilder (~> 1.2) jquery-rails jquery-ui-rails less-rails mysql2 pry rails (= 4.0.0) rspec-rails (~> 2.0) sass-rails (~> 4.0.0.rc2) sdoc simple_form therubyracer turbolinks twitter-bootstrap-rails uglifier (>= 1.3.0) ``` When I run `rake sometask` , I faced with this problem, ``` You don't have bcrypt-ruby installed in your application. Please add it to your Gemfile and run bundle install rake aborted! can't activate bcrypt-ruby (~> 3.0.0), already activated bcrypt-ruby-3.1.1. Make sure all dependencies are added to Gemfile. /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:224:in `block in replace_gem' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activemodel-4.0.0/lib/active_model/secure_password.rb:47:in `has_secure_password' /Users/apple/Projects/YH/multi-domains/app/models/super_admin_user.rb:2:in `<class:SuperAdminUser>' /Users/apple/Projects/YH/multi-domains/app/models/super_admin_user.rb:1:in `<top (required)>' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant' /Users/apple/.rvm/gems/ruby-2.0.0-p0@rails4/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:183:in `const_missing' /Users/apple/Projects/YH/multi-domains/lib/tasks/generate_new_data.rake:3:in `block in <top (required)>' ``` How should I fix this?

Original source