Ошибка версии RubyGem: рельсы (1.2.3 не> = 3.0) - PullRequest
0 голосов
/ 14 марта 2012

Я поддерживаю древний сайт RoR, который мы переписываем в Django.Сайт был написан кем-то другим, когда Rails был в зачаточном состоянии, и никто не обновлял его, пока я не дошел до него.Ночью или два назад сервер вышел из строя, я подозреваю, из-за обновления MySQL.В процессе попытки исправить это мы сломали его, и теперь дворняга не запускается.Я вижу это в журнале монгрел:

/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+, что невозможно, потому что мы заменим сайт всего через несколько недель и не хотим его обновлять (просто нужно работа на данный момент).Как я могу заставить mongrel работать с текущей версией rails?

В config/environment.rb у нас есть 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)

Спасибо за любую помощь!


Хорошо, я понял это.Это был несовместимый драгоценный камень (ы).К счастью, у нас есть тестовый сервер и рабочий сервер.Мы только испортили тестовый сервер вчера вечером (на рабочем сервере работал mongrel), поэтому я выполнил gem list на обоих серверах, и оказалось, что тестовый сервер имел совершенно другой список.Я только устанавливал и удалял гемы на тестовом сервере, пока gem list не создал идентичные списки на обоих серверах.

1 Ответ

1 голос
/ 14 марта 2012

Для Mongrel требуется последняя доступная версия rails, но для ваших приложений требуется rails 1.2.3, поэтому возникает конфликт.

Самый простой способ избежать конфликтов с гемами - использовать разные наборы гемов (с помощью rvm или rbenv).).Или удалите рельс 3 драгоценный камень, если он не используется ...

...