Не может активировать bcrypt-ruby (~> 3.0.0), уже активированный bcrypt-ruby-3.1.1. Убедитесь, что все зависимости добавлены в Gemfile - программирование
Подтвердить что ты не робот

Не может активировать bcrypt-ruby (~> 3.0.0), уже активированный bcrypt-ruby-3.1.1. Убедитесь, что все зависимости добавлены в Gemfile

У меня есть приложение Rails 4.0.0. Когда я запускаю команду установки пакета, проблем нет. Это мой 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

И это мой 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)

Когда я запускаю rake sometask, я столкнулся с этой проблемой,

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/[email protected]/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:224:in `block in replace_gem'
/Users/apple/.rvm/gems/[email protected]/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/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `load'
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:423:in `block in load_file'
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:615:in `new_constants_in'
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:422:in `load_file'
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:323:in `require_or_load'
/Users/apple/.rvm/gems/[email protected]/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:462:in `load_missing_constant'
/Users/apple/.rvm/gems/[email protected]/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)>'

Как мне это исправить?

4b9b3361

Ответ 1

В вашем gemfile вы не указываете версию, поэтому вы устанавливаете последнюю версию bcrypt-ruby, которая является 3.1.1, но вам нужна любая версия с 3.0.0 до 3.0.9. Вы можете получить это, добавив ограничение версии следующим образом:

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

Требование к версии происходит из ActiveModel SecurePassword, которая в настоящее время имеет явную зависимость от bcrypt-ruby (~ > 3.0.0). Вы можете увидеть зависимость от github. Когда этот код выполняется, он ищет версию с 3.0.0 до 3.0.9, которая не установлена, и поэтому она выдает ошибку.

Эта зависимость только что обновилась до '~ > 3.1.0' пару дней назад, но еще не пробилась в рельсы activemodel gem. Когда это произойдет, вам придется обновить свою версию соответствующим образом. Здесь commit, если вам интересно.

Ответ 2

  • Установите версию 3.0.1 и 3.1.2 bcrypt
  • перейдите в раздел "\ Ruby200\lib\ruby ​​\ gems\2.0.0\gems\bcrypt-ruby-3.1.2-x86-mingw32\lib"
  • скопировать папку "2.0"
  • вставить в "Ruby200\lib\ruby ​​\ gems\2.0.0\gems\bcrypt-ruby-3.0.1-x86-mingw32\lib"
  • включить gem 'bcrypt-ruby' в ваш Gemfile
  • установить пакет

Ответ 3

У меня была та же проблема. Добавить

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

затем запустите bundle install и перезапустить сервер. Работал для меня

Ответ 4

Добавить; gem 'bcrypt-ruby', '~ > 3.1.1' в ваш gemfile

Или, если вы специально хотите 3.0.0, следуйте советам Maximus и добавьте: gem 'bcrypt-ruby', '3.0.0'

Затем добавьте обновление bcrypt-ruby.

Вы также можете попробовать удалить gemfile.lock и выполнить повторный запуск пакета.

Ответ 5

Удалите Gemfile.lock и укажите gem 'bcrypt-ruby', '3.0.0'. Запустите bundle install. Фактически, в локальном файле gem bcrypt-ruby необходимо удалить.

Ответ 6

У меня была та же проблема, но существующий подход gem 'bcrypt-ruby', '~> 3.0.0' не работал, поэтому я фактически установил версию 3.0.0 добавив строку gem 'bcrypt-ruby', '3.0.0' в Gemfile и установив конкретную версию 3.0.0 (хотя она должна работать до версии 3.0.9)

gem install --version='3.0.0' bcrypt-ruby

После этого просто проверьте установку пакета, вы можете запустить bundle show bcrypt-ruby, а затем у вас должен быть путь, где был установлен этот камень, что-то вроде

< я > % RUBY_PATH%/Library/рубин/драгоценные камни/2.0.0/драгоценные камни/Bcrypt-рубиновый 3.0.0

после этих шагов я смог без проблем использовать bcrypt... просто разместив это в случае, если кто-то все еще сталкивается с этой проблемой.

Ответ 7

Использовать ActiveModel has_secure_password

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

Была та же проблема. Удаление комментария # из строки выше разрешило мою проблему, как упоминал jconley.

Ответ 8

Для меня это работало, просто удалив зависимость для версии скрипта в /active _model/secure_password.rb для тестовой среды разработки.

Я всегда старался добавить его в производство на 100% безопаснее

Ответ 9

В консоли:

$ gem install bundler
$ gem install bcrypt
$ bundle update bcrypt