2012-03-14 58 views
0

我正在維護一個古老的RoR站點,我們正在使用Django進行重寫。當Rails剛剛起步時,該網站是由其他人撰寫的,在我接觸之前沒有人更新它。一兩個星期前,服務器出現故障,我懷疑是由於MySQL更新造成的。在試圖解決它的過程中,我們破壞了它,現在混血兒不會開始。我看到這個在雜種日誌:RubyGem版本錯誤:rails(1.2.3 not> = 3.0)

/home/USER/rails/SITE/config/boot.rb:26:Warning: Gem::SourcUSERdex#search support for String patterns is deprecated, use #find_name 
/usr/local/lib/site_ruby/1.8/rubygems.rb:812:in `report_activate_error': RubyGem version error: rails(1.2.3 not >= 3.0) (Gem::LoadError) 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:223:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:258:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:257:in `each' 
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:257:in `activate' 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:33:in `require' 
    from /home/USER/rails/SITE/config/environment.rb:24 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `gem_original_require' 
    from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:29:in `require' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/rails.rb:147:in `rails' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:113:in `cloaker_' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `call' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:149:in `listener' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:99:in `cloaker_' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `call' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/configurator.rb:50:in `initialize' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `new' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:84:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/../lib/mongrel/command.rb:212:in `run' 
    from /usr/lib/ruby/gems/1.8/gems/mongrel-1.1.5/bin/mongrel_rails:281 
    from /usr/local/bin/mongrel_rails:19:in `load' 
    from /usr/local/bin/mongrel_rails:19 

我搜索周圍,試圖診斷錯誤。它看起來像雜種希望我們有軌3+這是不可能的,因爲我們將在幾周內更換網站,並不想讓它更新(它只需要工作現在爲)。我如何強制雜種在當前版本的rails上運行?我們有RAILS_GEM_VERSION = '1.2.3' unless defined? RAILS_GEM_VERSION,我認爲這會強制Rails 1.2.3。另外,這裏輸出gem list

*** LOCAL GEMS *** 

abstract (1.0.0) 
actionmailer (3.2.2, 3.0.3, 1.3.3) 
actionpack (3.2.2, 3.0.3, 1.13.6, 1.13.3) 
actionwebservice (1.2.6, 1.2.3) 
activemodel (3.2.2, 3.0.3) 
activerecord (3.2.2, 3.0.3, 1.15.6, 1.15.3) 
activeresource (3.2.2, 3.0.3) 
activesupport (3.2.2, 3.0.3, 1.4.4, 1.4.2) 
acts_as_ferret (0.5.3, 0.4.3) 
arel (3.0.2, 2.0.7) 
builder (3.0.0, 2.1.2) 
bundler (1.1.0, 1.0.9) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.1.8, 1.1.0) 
erubis (2.7.0, 2.6.6) 
fastthread (1.0.7) 
ferret (0.11.6) 
gem_plugin (0.2.3) 
hike (1.2.1) 
i18n (0.6.0, 0.5.0) 
jk-ferret (0.11.8.3, 0.11.8.2) 
journey (1.0.3) 
json (1.6.5) 
mail (2.4.3, 2.2.15) 
mime-types (1.17.2, 1.16) 
mongrel (1.1.5) 
multi_json (1.1.0) 
polyglot (0.3.3, 0.3.1) 
rack (1.4.1, 1.2.1) 
rack-cache (1.2) 
rack-mount (0.8.3, 0.6.13) 
rack-ssl (1.3.2) 
rack-test (0.6.1, 0.5.7) 
rails (1.2.3) 
railties (3.2.2, 3.0.3) 
rake (0.9.2.2, 0.8.7) 
rdoc (3.12) 
sprockets (2.1.2) 
thor (0.14.6) 
tilt (1.3.3) 
treetop (1.4.10, 1.4.9) 
tzinfo (0.3.32, 0.3.24) 

感謝您的任何和所有幫助!


好的,我想通了。這是不兼容的寶石(S)。幸運的是,我們有一臺測試服務器和一臺生產服務器。我們昨晚只與測試服務器混淆了(生產服務器上的雜交器正在工作),所以我在兩臺服務器上都做了gem list,結果發現測試服務器有不同的列表。我只是在測試服務器上安裝並卸載了gem,直到gem list在兩臺服務器上生成相同的列表。

回答

1

Mongrel確實需要最新的rails版本,但是你的應用需要rails 1.2.3,所以會有衝突。

避免寶石衝突的最簡單方法是使用不同的gemsets(使用rvm或rbenv)。或者,如果它沒有使用,請移除導軌3寶石...

+0

「或者,如果未使用導軌3寶石,請移除...」 - 我該如何操作? 'gem list'沒有列出Rails 3的安裝。 – Geoff 2012-03-14 18:04:16

+1

您確實安裝了一些rails 3 gem依賴項:actionmailer,actionpack,activemodel,activerecord,activeresource,activesupport,railties +一些機架版本。刪除這些寶石的版本3+,它會好的 – sailor 2012-03-14 20:31:20

+0

謝謝!你釘了它。我刪除了不兼容的寶石,現在雜種開始。 – Geoff 2012-03-14 21:04:10