2012-03-12 11 views
20

Bu sorunun bir biçimde veya daha önce sorulmuş olduğunu biliyorum, ancak bunun için hala bir çözüm bulamıyorum.Ruby On Rails - salatalık kullanırken hata: 3.2.2 aktif aktivasyonunu zaten etkinleştirdiniz, ancak Gemfile sunucunuz 3.1.0 etkin destek gerektirir.

online sunulan sav dersi alıyorum ve ben paket sürümünü yüklemek çalıştırdıktan sonra komut istemine

Using the default profile... 
You have already activated activesupport 3.2.1, but your Gemfile requires activesupport 3.1.0. Using bundle exec may solve this. (Gem::LoadError) 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:31:in `block in setup' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/runtime.rb:17:in `setup' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler.rb:110:in `setup' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/setup.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/boot.rb:6:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/application.rb:1:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/environment.rb:2:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-rails-1.3.0/lib/cucumber/rails.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/features/support/env.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load_code_file' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:171:in `load_file' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `each' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `load_files!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:175:in `load_step_definitions' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:40:in `run!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:43:in `execute!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:20:in `execute' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/bin/cucumber:14:in `<top (required)>' 
/Users/chemin/.rvm/gems/[email protected]/bin/cucumber:19:in `load' 
/Users/chemin/.rvm/gems/[email protected]/bin/cucumber:19:in `<main>' 

gelen salatalık çalıştırdığınızda kod doğrudan Eşit bir olsun https://github.com/saasbook/hw3_rottenpotatoes

klonlanmış olduğu uglier message

Could not find rack-cache (~> 1.1) amongst [actionmailer-3.1.0, actionpack-3.1.0, activemodel-3.1.0, activerecord-3.1.0, activeresource-3.1.0, activesupport-3.1.0, addressable-2.2.7, archive-tar-minitar-0.5.2, arel-2.2.1, bcrypt-ruby-3.0.1, builder-3.0.0, capybara-1.1.2, childprocess-0.3.1, coffee-rails-3.1.1, coffee-script-2.2.0, coffee-script-source-1.2.0, columnize-0.3.6, cucumber-1.1.8, cucumber-rails-1.3.0, cucumber-rails-training-wheels-1.0.0, database_cleaner-0.7.1, diff-lcs-1.1.3, erubis-2.7.0, execjs-1.3.0, ffi-1.0.11, gherkin-2.8.0, haml-3.1.4, hike-1.2.1, i18n-0.6.0, jquery-rails-1.0.19, json-1.6.5, json_pure-1.6.5, launchy-2.0.5, libv8-3.3.10.4-x86_64-darwin-10, linecache19-0.5.12, mail-2.3.0, mime-types-1.17.2, multi_json-1.1.0, nokogiri-1.5.0, polyglot-0.3.3, rack-1.3.6, rack-cache-1.0.3, rack-mount-0.8.3, rack-ssl-1.3.2, rack-test-0.6.1, rails-3.1.0, railties-3.1.0, rake-0.9.2.2, rdoc-3.12, ruby-debug-base19-0.11.25, ruby-debug19-0.11.6, ruby_core_source-0.1.5, rubyzip-0.9.6.1, sass-3.1.15, sass-rails-3.1.5, selenium-webdriver-2.13.0, sprockets-2.0.3, sqlite3-1.3.5, term-ansicolor-1.0.7, therubyracer-0.9.10, thor-0.14.6, tilt-1.3.3, treetop-1.4.10, tzinfo-0.3.31, uglifier-1.2.3, xpath-0.1.4] (Gem::LoadError) 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:451:in `block in find_in_unresolved' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:451:in `map' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/specification.rb:451:in `find_in_unresolved' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:43:in `require' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/dsl.rb:1:in `<top (required)>' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/definition.rb:17:in `build' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler.rb:138:in `definition' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler.rb:126:in `load' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler.rb:110:in `setup' 
/Users/chemin/.rvm/gems/[email protected]/gems/bundler-1.0.21/lib/bundler/setup.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/boot.rb:6:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/application.rb:1:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/config/environment.rb:2:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:55:in `require' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-rails-1.3.0/lib/cucumber/rails.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require' 
/Users/chemin/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require' 
/Users/chemin/rails_projects/saas/hw3_rottenpotatoes/features/support/env.rb:7:in `<top (required)>' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/rb_support/rb_language.rb:129:in `load_code_file' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:171:in `load_file' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:83:in `block in load_files!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `each' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime/support_code.rb:82:in `load_files!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:175:in `load_step_definitions' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/runtime.rb:40:in `run!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:43:in `execute!' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/lib/cucumber/cli/main.rb:20:in `execute' 
/Users/chemin/.rvm/gems/[email protected]/gems/cucumber-1.1.9/bin/cucumber:14:in `<top (required)>' 
/Users/chemin/.rvm/gems/[email protected]/bin/cucumber:19:in `load' 
/Users/chemin/.rvm/gems/[email protected]/bin/cucumber:19:in `<main>' 

cevap

39

Bir çift çözüm var, en kolay olanÖnceve sorununuzu çözüp çözmediğine bakın.

o işe sizin rails3tutorial gemset silip tekrar yeniden oluşturun etmezse:

rvm gemset delete rails3tutorial 
rvm [email protected] --create 

Sonra bundle çalıştırın ve umarım sizin için senin Mücevher yükleyecektir. Bunu bundle exec cucumber ile takip edin (neredeyse her zaman eskitme taşlarını kazara yüklememeye çalışmam için bundle exec kullanarak özelliklerimi ve ipleri çalıştırıyorum).

Umarım bu işe yarıyor!

GÜNCELLEME: açıklanması bundle exec biraz

bundle exec daha o senin Gemfile bağlamında başka komutunu çalıştıracak ile gelir bundler bir komuttur. Bu durumda, sadece Gemfile öğesinden gelen taşlarla komutunu ancak 'u ancak'u çalıştırmayı söylüyorsunuz ve şu anda mevcut olan tüm mücevherleri kullanmıyorsunuz.

Örneğin, daha önce activesupport 3.2.1 yüklediyseniz ve Gemfile öğeniz activesupport 3.1.0 için sorar. Bu olduğunda, salatalık komutunun 'activesupport' (belki de require 'cucumber/rails' çağrısı env.rb aracılığıyla) 'ın mevcut mücevherlerinizden yapabileceği herhangi bir rastgele aktif versiyonunu yakalayabileceğine inanıyorum (3.2.1'i ele alalım). Bundan sonra, özelliklerinizi çalıştırmaya başlamak için ray ortamınızı yüklemeye karar verir. Gerçek uygulamanızı yüklemeye başladığında, kod Gemfile.lock'a bakar ve gerçekte istediğinizi görür activesupport 3.1.0, ancak eski bir sürümü yeni bir sürümün üzerine yükleyemez, bu yüzden hata James Lin ile çöküyor yapıştırılan.

Bu yüzden, eğer rvm kullanıyorsanız, ayrı projeleriniz için ayrı gemsetleri saklamak ve bu projede mücevherlerinizi güncellemeniz halinde gemsetleri silmek/yeniden oluşturmak iyi bir fikirdir. Mücevherlerin eski versiyonlarını saklayınız. Alternatif olarak, bundle exec, sorunların% 99'unu da çözme eğilimindedir. Eğer rvm kullanmıyorsanız ve birden fazla projeniz varsa, muhtemelen çok sayıda farklı mücevher çeşidine sahipsiniz ve her zaman bundle exec'u komisyon görevlerini yürütme, salatalık özelliklerini çalıştırma ve diğer birim testleri gibi işlemleri yapmak için kullanmalısınız.

+1

Teşekkürler çalışan grup exec salatalık çalıştı! –

+0

"Salatalık" ve "bundle exec cucumber" arasındaki farkın ne olduğunu açıklayabilir misiniz? – coelhudo

+0

@coelhudo Açıkladığım cevabı verdim :) – nzifnab

3

Yoksa emin olmak için bundle update yapabileceği tüm mücevher eklentileri yeni sürümü ve videonun Gemfile.lock güncelleyecek, bu nedenle bu iki tutarlı olacaktır.

Ben bundle exec ve bundle update arasındaki farkı uygulamanızın soran sürümünü sağlamak veya uygulama mücevher eski bir sürümünü ısrar olmaz ki yeni bir sürümü yüklendiğinde, uygulama gemfile güncelleyip çünkü soruna neden paket isteyip sanırım gem dosyası.

Sürüm çakışması olduğunda, sistem ortamında yüklü olan uygulamanızın Gemfile ile tutarlı olduğundan emin olmanız veya kilit dosyasının eski bir mücevher sürümünü kullanmaya çalışmasını istemediğinizden emin olmanız genellikle iyi bir fikirdir. Daha yeni sürümü mevcut, rvm veya uygulama düzeyinde benzer kullanarak gem sisteminizi dondurulamaz sürece, ama yine de, yakut uygulaması dağıttığınızda, diğer makinelerde sorun neden olabilir.

Sonuçta, uygulamanızın dağıtılması gerektiğinden, gem dosyasının daha yeni bir sürümü mevcut uygulama ile çalışmadığı sürece, her zaman beklemediğiniz sürece eski bir çalışma sürümünde ısrar etmemeliyim. Geçerli bir argüman olan güvenli tarafta.