2013-07-19 5 views
16

Mam aplikację Rails 4.0.0. Kiedy uruchamiam polecenie instalacji pakietu, nie ma problemu. To jest mój GemFile.nie można aktywować bcrypt-ruby (~> 3.0.0), już aktywowanego bcrypt-ruby-3.1.1. Upewnij się, że wszystkie zależności zostały dodane do 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 

A to moja 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) 

Kiedy biegnę rake sometask, mam do czynienia z tym problemem,

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)>' 

Jak mam rozwiązać ten problem?

Odpowiedz

0

Dodaj; gem 'bcrypt-Ruby', '~> 3.1.1' do swojej gemfile

Lub jeśli konkretnie chcą 3.0.0, wykonaj porady Maximus i dodać: gem 'bcrypt-Ruby', '3.0.0'

Następnie aktualizuj pakiet bcrypt-ruby.

Możesz również spróbować usunąć plik gemfile.lock i ponownie uruchomić instalację pakietu.

0

Usuń Gemfile.lock i określ klejnot "bcrypt-ruby", "3.0.0". Uruchom bundle install. Właściwie w lokalnym pliku gem należy odinstalować bcrypt-ruby.

44

W twoim gemfile, nie określasz wersji, więc instalujesz najnowszą wersję bcrypt-ruby, która jest 3.1.1, ale potrzebujesz jakiejkolwiek wersji od 3.0.0 do 3.0.9. Formularz ten można uzyskać poprzez dodanie wersji ograniczenie tak:

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

Wymóg wersja pochodzi z ActiveModel za SecurePassword który aktualnie ma wyraźną zależność od bcrypt-ruby (~> 3.0.0). Możesz zobaczyć zależność od github. Kiedy ten kod jest wykonywany, szuka wersji od 3.0.0 do 3.0.9, która nie jest zainstalowana i dlatego generuje błąd.

Ta zależność została niedawno zaktualizowana do "~> 3.1.0" kilka dni temu, ale nie dotarła jeszcze do gemu aktywnego gemu szyn. Kiedy to nastąpi, będziesz musiał odpowiednio zaktualizować swoją wersję. Oto commit jeśli jesteś ciekawy.

1

Miałem ten sam problem. Dodaj

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

następnie uruchomić bundle install i restart serwera. Pracował dla mnie

0

miałem ten sam problem, ale obecne podejście pod warunkiem gem 'bcrypt-ruby', '~> 3.0.0' nie działa więc faktycznie zainstalowaną wersję 3.0.0 dodając linię gem 'bcrypt-ruby', '3.0.0' do Gemfile i instalacji konkretnej wersji 3.0.0 (chociaż powinno działać do wersji 3.0.9)

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

po tym, po prostu sprawdzić swoją zainstalować pakiet, można uruchomić bundle show bcrypt-ruby a następnie trzeba mieć ścieżkę, w której został zainstalowany ten klejnot, coś

% RUBY_PATH%/lib/ruby/gems/2.0.0/gems/bcrypt-ruby-3.0.0

po tych krokach byłem w stanie korzystać z bcrypt bez problemów ... po prostu delegowania to w kogoś zdarzenia nadal napotyka na ten problem.

3
  1. zainstalować zarówno 3.0.1 i 3.1.2 w wersji bcrypt
  2. przejdź do sekcji „\ Ruby200 \ lib \ ruby ​​\ perełki \ 2.0.0 \ perełki \ bcrypt-ruby-3.1.2-x86-mingw32 \ lib”
  3. kopiowania '2.0' katalog
  4. wkleić w "Ruby200 \ lib \ rubin \ perełki \ 2.0.0 \ perełki \ bcrypt-rubin-3.0.1-x86 mingw32 \ lib"
  5. obejmują gem 'bcrypt-ruby' w twoim Gemfile
  6. instalacja pakietu
+0

działa świetnie. Dzięki –

0

Zastosowanie ActiveModel has_secure_password

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

miał ten sam problem. Usunięcie komentarza z powyższej linii rozwiązało mój problem, o czym wspomniał jconley.

0

Dla mnie działa to po prostu usunięcie zależności dla wersji bycript w /active_model/secure_password.rb dla środowiska testowego rozwoju.

I zawsze pamiętaj, aby dodać go do produkcji tylko do bezpiecznego

0

100% w konsoli:

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